home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d3 / bingo20.arc / BINGO.DOC < prev    next >
Text File  |  1990-07-01  |  161KB  |  4,406 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.                           The Bingo Programmer's Text Editor
  7.                                  A Shareware Product
  8.                                      Version 2.0
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.                                    Reference Manual
  26.                                  Copyright 1989,1990
  27.                               Christopher R. S. Schanck
  28.  
  29.                                      June 6, 1990
  30.  
  31.  
  32.  
  33.  
  34.                                   Table of Contents
  35.                                   -----------------
  36.  
  37.           Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   1
  38.                Philosophy . . . . . . . . . . . . . . . . . . . . . . .   2
  39.                The Shareware Concept and Registering  . . . . . . . . .   3
  40.                Things to Come (Maybe) . . . . . . . . . . . . . . . . .   3
  41.                Support  . . . . . . . . . . . . . . . . . . . . . . . .   4
  42.  
  43.           Using this Manual . . . . . . . . . . . . . . . . . . . . . .   4
  44.  
  45.           Critical Short Sections . . . . . . . . . . . . . . . . . . .   5
  46.                Installing Bingo . . . . . . . . . . . . . . . . . . . .   5
  47.                Invoking Bingo . . . . . . . . . . . . . . . . . . . . .   6
  48.                Bingo and Larger Screen Displays . . . . . . . . . . . .   7
  49.                Bingo's Menu System  . . . . . . . . . . . . . . . . . .   8
  50.                Bingo's Dialogue Boxes . . . . . . . . . . . . . . . . .   9
  51.                     String Entry Boxes  . . . . . . . . . . . . . . . .   9
  52.                     Yes/No Boxes  . . . . . . . . . . . . . . . . . . .   9
  53.                     Non-Editable Display Boxes  . . . . . . . . . . . .   9
  54.                     List-Picking Boxes  . . . . . . . . . . . . . . . .   9
  55.                Directory Lister . . . . . . . . . . . . . . . . . . . .  11
  56.                Bingo and File Names . . . . . . . . . . . . . . . . . .  11
  57.                The Status Line  . . . . . . . . . . . . . . . . . . . .  12
  58.                Keyinst: The Keyboard Configuration Program  . . . . . .  13
  59.                     Key Names . . . . . . . . . . . . . . . . . . . . .  13
  60.                     'open_end' Identifier . . . . . . . . . . . . . . .  16
  61.                     'cur_file' Identifier . . . . . . . . . . . . . . .  16
  62.                     Keyinst Command Line Options  . . . . . . . . . . .  17
  63.                Bingo & The Mouse  . . . . . . . . . . . . . . . . . . .  18
  64.                     The Mouse Cursor  . . . . . . . . . . . . . . . . .  18
  65.                     The Mouse at the General Editing Level  . . . . . .  18
  66.                     The Mouse and The Menus . . . . . . . . . . . . . .  20
  67.                     The Mouse & Dialogue Boxes  . . . . . . . . . . . .  21
  68.                          String Entry Boxes . . . . . . . . . . . . . .  21
  69.                          Yes/No Boxes . . . . . . . . . . . . . . . . .  21
  70.                          Non-Editable Display Boxes . . . . . . . . . .  21
  71.                          List-Picking Boxes . . . . . . . . . . . . . .  21
  72.                     The Mouse and The ASCII Table . . . . . . . . . . .  22
  73.  
  74.           Basic Editing . . . . . . . . . . . . . . . . . . . . . . . .  23
  75.                The Destructive Backspace  . . . . . . . . . . . . . . .  23
  76.                Delete EOL vs. Delete Line vs. Delete BOL  . . . . . . .  23
  77.                Delete Word  . . . . . . . . . . . . . . . . . . . . . .  23
  78.  
  79.           File Handling . . . . . . . . . . . . . . . . . . . . . . . .  24
  80.                Edit_file & Load_file  . . . . . . . . . . . . . . . . .  24
  81.                Choose_file  . . . . . . . . . . . . . . . . . . . . . .  24
  82.                Rename_file  . . . . . . . . . . . . . . . . . . . . . .  24
  83.                Quit . . . . . . . . . . . . . . . . . . . . . . . . . .  24
  84.                Quit_all . . . . . . . . . . . . . . . . . . . . . . . .  24
  85.                Abort & Abort_all  . . . . . . . . . . . . . . . . . . .  24
  86.                Delete_file  . . . . . . . . . . . . . . . . . . . . . .  25
  87.                Zap_file . . . . . . . . . . . . . . . . . . . . . . . .  25
  88.  
  89.  
  90.  
  91.  
  92.                Modify_save & Modify_save_all  . . . . . . . . . . . . .  25
  93.                Switch_file  . . . . . . . . . . . . . . . . . . . . . .  25
  94.  
  95.           Searching . . . . . . . . . . . . . . . . . . . . . . . . . .  26
  96.  
  97.           Navigation  . . . . . . . . . . . . . . . . . . . . . . . . .  27
  98.  
  99.           Block Handling  . . . . . . . . . . . . . . . . . . . . . . .  28
  100.                Marking  . . . . . . . . . . . . . . . . . . . . . . . .  28
  101.                Operations on Blocks . . . . . . . . . . . . . . . . . .  28
  102.                Named Buffers  . . . . . . . . . . . . . . . . . . . . .  29
  103.                Miscellaneous Functions  . . . . . . . . . . . . . . . .  29
  104.  
  105.           Utilities . . . . . . . . . . . . . . . . . . . . . . . . . .  30
  106.  
  107.           Extra Functions . . . . . . . . . . . . . . . . . . . . . . .  31
  108.                Help . . . . . . . . . . . . . . . . . . . . . . . . . .  31
  109.                Info . . . . . . . . . . . . . . . . . . . . . . . . . .  31
  110.                Pick & Exec  . . . . . . . . . . . . . . . . . . . . . .  31
  111.                Quit and Save Status . . . . . . . . . . . . . . . . . .  31
  112.                Global . . . . . . . . . . . . . . . . . . . . . . . . .  32
  113.                Ascii_table  . . . . . . . . . . . . . . . . . . . . . .  32
  114.  
  115.           System Operations . . . . . . . . . . . . . . . . . . . . . .  33
  116.                Changing Directories . . . . . . . . . . . . . . . . . .  33
  117.                Simple Execution & Shelling  . . . . . . . . . . . . . .  33
  118.                Swap Execution & Shelling  . . . . . . . . . . . . . . .  33
  119.  
  120.           Macros  . . . . . . . . . . . . . . . . . . . . . . . . . . .  35
  121.                Macro Space  . . . . . . . . . . . . . . . . . . . . . .  35
  122.                Defining Macros  . . . . . . . . . . . . . . . . . . . .  35
  123.                Saving Macros  . . . . . . . . . . . . . . . . . . . . .  36
  124.                Saving the Entire Key Set  . . . . . . . . . . . . . . .  36
  125.                Executing a Macro File . . . . . . . . . . . . . . . . .  36
  126.  
  127.           Windows . . . . . . . . . . . . . . . . . . . . . . . . . . .  37
  128.                Window_split, _edit, _load & _find . . . . . . . . . . .  37
  129.                Window_vertical  . . . . . . . . . . . . . . . . . . . .  37
  130.                Window_resize  . . . . . . . . . . . . . . . . . . . . .  37
  131.                Window_one & Window_zoom . . . . . . . . . . . . . . . .  37
  132.  
  133.           Printing  . . . . . . . . . . . . . . . . . . . . . . . . . .  38
  134.  
  135.           Error Parsing and Undo  . . . . . . . . . . . . . . . . . . .  39
  136.                How Error Parsing Works  . . . . . . . . . . . . . . . .  39
  137.                Error Parsing Method . . . . . . . . . . . . . . . . . .  39
  138.                Undo Capabilities  . . . . . . . . . . . . . . . . . . .  40
  139.                Manipulating the Undo Stack  . . . . . . . . . . . . . .  40
  140.  
  141.           Configuring Bingo . . . . . . . . . . . . . . . . . . . . . .  41
  142.  
  143.           Function List . . . . . . . . . . . . . . . . . . . . . . . .  42
  144.                General Editing  . . . . . . . . . . . . . . . . . . . .  42
  145.                File Handling  . . . . . . . . . . . . . . . . . . . . .  44
  146.  
  147.  
  148.  
  149.  
  150.                Searching  . . . . . . . . . . . . . . . . . . . . . . .  46
  151.                Navigation . . . . . . . . . . . . . . . . . . . . . . .  47
  152.                Block Handling . . . . . . . . . . . . . . . . . . . . .  49
  153.                Utilities  . . . . . . . . . . . . . . . . . . . . . . .  51
  154.                Extra Operations . . . . . . . . . . . . . . . . . . . .  53
  155.                System Operations  . . . . . . . . . . . . . . . . . . .  54
  156.                Macros . . . . . . . . . . . . . . . . . . . . . . . . .  55
  157.                Windows  . . . . . . . . . . . . . . . . . . . . . . . .  56
  158.                Printing . . . . . . . . . . . . . . . . . . . . . . . .  57
  159.                Error Parsing and Undo . . . . . . . . . . . . . . . . .  58
  160.                Configuration  . . . . . . . . . . . . . . . . . . . . .  59
  161.  
  162.           License Agreement . . . . . . . . . . . . . . . . . . . . . .  64
  163.  
  164.           Registration Form - Bingo 2.0 . . . . . . . . . . . . . . . .  66
  165.  
  166.           The Author  . . . . . . . . . . . . . . . . . . . . . . . . .  68
  167.  
  168.           Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  69
  169.  
  170.           Appendix A: Index . . . . . . . . . . . . . . . . . . . . . .  70
  171.  
  172.  
  173.  
  174.  
  175.                                      Introduction
  176.                                      ------------
  177.  
  178.                This document serves as the reference manual for Bingo 2.0. 
  179.           Bingo is a full-featured text editor at the right price.  Some of
  180.           its features include:
  181.  
  182.           -    high speed execution, with particularly fast searches,
  183.                screen handling, and file I/O
  184.           -    full color support
  185.           -    programmable integrated mouse support
  186.           -    easy support of VGA, EGA, & MCGA extended text modes
  187.           -    superb macro capability
  188.           -    large suite of utility functions: entab; detab; command
  189.                repeat; etc.
  190.           -    redefinable keys; custom define your own keyboard setup
  191.           -    complete menu system supporting most Bingo functions
  192.           -    multiple files; up to 50 open files allowed
  193.           -    multiple windows: view different sections of the same file,
  194.                or different files at the same time
  195.           -    execute DOS commands, including command-line compilers
  196.                within only ~10k of overhead
  197.           -    no configuration files needed at runtime
  198.           -    completely configurable from within itself
  199.           -    effective use of placemarks to mark positions in files
  200.           -    edit files up to size of memory
  201.           -    user definable help file
  202.           -    extensive block operation support, include point, line and
  203.                column marking, and two different sets of block operations
  204.           -    one default block buffer, plus 26 additional named buffers
  205.           -    wordwrap, paragraph formatting, and autoindent support
  206.                included for text processing work
  207.           -    C Mode supports programming in the C programming language
  208.           -    Delimiter and indentation matching
  209.           -    wildcard filespecs lead to a directory list picker
  210.           -    execute *any* Bingo function from within Bingo whether it
  211.                has been assigned to a key or not using a 'function picker'
  212.           -    interrupt Bingo at any point and exit, and when you restart
  213.                Bingo it will pick up exactly where you left off
  214.           -    print files & blocks through the serial port, parallel port,
  215.                or to a file, with or without line numbers
  216.           -    set printing left margin, top margin, and lines per page
  217.           -    automatic processing of errors generated by the Borland and
  218.                Microsoft developmental tools.
  219.           -    undo stack of deleted items
  220.           -    execute any command or macro "globally" over all files in
  221.                the ring
  222.  
  223.  
  224.  
  225.  
  226.  
  227.                                  Bingo 2.0 Reference
  228.                                           1
  229.  
  230.  
  231.  
  232.  
  233.           Philosophy
  234.           ----------
  235.  
  236.                Text editors are not required for every system; at least, an
  237.           editor of Bingo's power is not.  If all you require of your
  238.           editor is that it allow you to modify batch files and such, Bingo
  239.           is overkill.  Cheap overkill, but still overkill.  However, if
  240.           you use an editor daily, as a programmer, as a consultant who
  241.           hops from system to system and likes to have your own tools, or
  242.           in any other situation, Bingo could very well be what you are
  243.           looking for.  Why?  In spite of its power, Bingo is very
  244.           inexpensive, and does some things no other editors do, as a look
  245.           at its feature list will convince you.
  246.                People who live with an editor daily for long stretches of
  247.           time know that choosing an editor is a near religious experience. 
  248.           Defense of your choice develops into a kind of fanaticism.  In
  249.           the Unix world, VI/Emacs wars promise to extend into the next
  250.           millennium!  It was the fact that I could not find an editor I
  251.           was truly comfortable with that prompted me to design Bingo.  In
  252.           doing so I believe I have created an editor that should appeal to
  253.           a broad base of users.  
  254.                Bingo allows a large degree of latitude when it comes to
  255.           assigning keys.  In a complementary fashion, it allows a user
  256.           specified file to be used for help.  Further, because of Bingo's
  257.           extensive and powerful Menu system, you do not need to memorize a
  258.           large number of keystrokes in order to use Bingo effectively. 
  259.           This allows you to get up and going in a minimum amount of time.
  260.                And now in Version 2.0, integrated programmable mouse
  261.           support has been added.  I have found mouse use to be very nice
  262.           when editing, and the people who have beta-tested version 2.0
  263.           have been very enthusiastic.
  264.                Bingo is optimized for response time.  Screen response in
  265.           particular is very quick, taking full advantage of the PC's
  266.           direct video architecture.  Searches also occur at blazing speed
  267.           -- a must if you spend many hours with an editor.
  268.                Bingo is heavily configurable, all from within the editor
  269.           itself.  This "on-the-fly" ability is a lifesaver if you hop from
  270.           one system to another.
  271.                Bingo has all the standard macro and file handling
  272.           abilities, but it specifically excels at block handling.  Three
  273.           types of marking, 27 buffers to use, and a huge array of
  274.           functions to deal with block operations allow you to use blocks
  275.           to their fullest.
  276.                Especially designed for programmers, Bingo includes a suite
  277.           of utility functions to aid in handling program text.  Functions
  278.           to shift blocks of text left and right, to align blocks, to sort
  279.           blocks, to match delimiters, and to move by indentation are only
  280.           a few of the many handy functions included.
  281.  
  282.  
  283.  
  284.  
  285.                                  Bingo 2.0 Reference
  286.                                           2
  287.  
  288.  
  289.  
  290.  
  291.           The Shareware Concept and Registering
  292.           -------------------------------------
  293.                This is just a general note as to what Bingo being Shareware
  294.           means to you, the user.  Shareware could just as easily be called
  295.           "Honorware": I depend upon you honor to mail in your payment for
  296.           Bingo if you are using it regularly.  All of the legal jargon
  297.           describing this Shareware concept is contained in the License &
  298.           Registration section of this manual.
  299.                So come on, if you use Bingo regularly, send me the $30.00 I
  300.           charge for Bingo -- its not much money for a very sharp program.
  301.                When you register, you are entitled to a number of
  302.           advantages:
  303.  
  304.                1) If you request it, I will mail you a copy of the current
  305.                release of Bingo free.
  306.                2) The next release will be mailed to you free of charge.
  307.                3) Each upgrade after this will cost you a mere $5.00
  308.  
  309.           Also, some registered users are asked to beta-test upcoming
  310.           versions -- a double-edged sword.  Beta testing is somewhat
  311.           precarious at times, but you do get to take a hand in forming the
  312.           next version.  Plus you get to have your complaints redressed
  313.           faster than the general public.
  314.  
  315.           Things to Come (Maybe)
  316.           ----------------------
  317.                The one major thing which still looms in Bingo's future is
  318.           the ability to work with files larger than memory.  I am thinking
  319.           of implementing a virtual memory method, but it may or may not
  320.           appear in later versions.  Ideally, I will simply implement an
  321.           OS/2 version, in which case problems with virtual memory and such
  322.           become the operating systems problem, as they should.
  323.                This version showcase an entirely unforseen addition, that
  324.           of mouse support.  Highly integrated and very programmable, I
  325.           believe Bingo offers one of the highest levels of mouse usability
  326.           found in MS-DOS editors.
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.                                  Bingo 2.0 Reference
  344.                                           3
  345.  
  346.  
  347.  
  348.  
  349.           Support
  350.           -------
  351.  
  352.                As any of my registered users will tell you, I am committed
  353.           to supporting Bingo.  Without my users, where would I be? 
  354.           Anyone, registered or not, who calls or writes me will receive
  355.           prompt and (hopefully) useful help.  I particularly like to hear
  356.           of requests; anything you would like to see in Bingo, let me
  357.           know.  One of my beta-testers remarked that he felt like he had a
  358.           personal editor -- anything he wanted was added.
  359.                However, as this version is released, there is one problem. 
  360.           Currently, I am unsure where I will be residing for the next
  361.           three months.  Therefore, the address and phone number given here
  362.           are of relatives of mine.  Anything mailed to that address will
  363.           reach me with a 2-3 day delay.
  364.                If you call the phone number (9am - 6pm, EST, please!), you
  365.           will have two choices.  If you wish, you will be given a number
  366.           where you can currently reach me.  Or you can leave your name and
  367.           number, and I will return your call within 2-3 days.
  368.                PLEASE feel free to contact me.  I very much like to hear
  369.           from you!  Also, remember the hours for phone support!
  370.  
  371.           Using this Manual
  372.           -----------------
  373.                This manual is broken into three parts.  The first is
  374.           comprised of small sections concerned with particular little
  375.           parts of Bingo, such as Installation and Invocation.  
  376.                The second part consists of sections on each major
  377.           functionality present in Bingo.  These individual sections are
  378.           not tutorial in orientation, but rather give necessary
  379.           information needed to utilize this functionality.  
  380.                The final section is a listing of all of the functions
  381.           supported by Bingo.
  382.                I suggest that the first time user first read the initial
  383.           sections for pertinent information, then go through the function
  384.           list *closely*.  This will give you a clear idea of the
  385.           capabilities of Bingo.  Then, for clarification, go through the
  386.           middle sections as needed.
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.                                  Bingo 2.0 Reference
  402.                                           4
  403.  
  404.  
  405.  
  406.  
  407.                                Critical Short Sections
  408.                                -----------------------
  409.  
  410.           Installing Bingo
  411.           ----------------
  412.                There are 2 files which are of critical importance for Bingo
  413.           to run. 
  414.                BE.EXE and BSWAP.COM are the executables.  BE.EXE is the
  415.           actual editor executable, and the file invoked to start the
  416.           editor.  BSWAP.COM is used by BE.EXE to allow Bingo to swap
  417.           itself out of memory and then back in when executing DOS
  418.           commands.  Both of these files MUST, MUST, MUST reside in the
  419.           same subdirectory (Got that?).
  420.                KEYINST.EXE is another program of importance; it is the
  421.           program used to install a keyboard configuration.  It takes the
  422.           name of an executable (usually BE.EXE) and of a configuration
  423.           file (usually BINGO.CFG) and configures the former based on the
  424.           latter.  See the section on Configuring the Keyboard for more
  425.           information.
  426.                The help file BINGO.HLP, is an additional file which must be
  427.           in the same subdirectory as BE.EXE.  When you invoke help, Bingo
  428.           will look there for the file BINGO.HLP.  The file may contain
  429.           your own description of the current key layout, or just about
  430.           anything else you would like.  Bingo comes with a default help
  431.           file.
  432.                As an example, assume the Bingo distribution files are
  433.           contained on drive A:, and you are installing Bingo on drive C:. 
  434.                First, move to drive C: and create a directory for bingo,
  435.           called \bingo using DOS's mkdir command.  Move to this
  436.           subdirectory using 'cd \bingo'.  Now copy the files from drive A:
  437.           over to the proper subdirectory by using 'copy A:*.* C:\BINGO'.
  438.                Finally, you probably want to add 'C:\BINGO' to your PATH
  439.           environment variable.
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.                                  Bingo 2.0 Reference
  460.                                           5
  461.  
  462.  
  463.  
  464.  
  465.           Invoking Bingo
  466.           --------------
  467.                Starting Bingo is simple.  Simply type:
  468.  
  469.                     be <filespec> <filespec> ...
  470.  
  471.           at the DOS prompt, and you are off.  One of several things will
  472.           happen.  If each filename you gave is discreet (i.e., no
  473.           wildcards), the files named will each be loaded, one after
  474.           another.  If a filespec matches more than one file, a directory
  475.           list of matching files will pop up which will allow you to choose
  476.           a file.  See the section on the Directory List for further
  477.           explanation.
  478.                If no filespec is given, Bingo will ask behave as if you
  479.           issued 'be *.*'.
  480.  
  481.                You may also specify the starting line and column position
  482.           for the first file to be edited.  The '/lxx' and '/cxx' switches
  483.           allow you to do this.  For example:
  484.  
  485.                be /l10 /c15 test.doc
  486.  
  487.           would load the file test.doc and move to the 10th line, five
  488.           columns over.  If you do not give a column argument, the first
  489.           column will be assumed.  If you do not give a line argument, both
  490.           the first line and the first column will be assumed.
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511.  
  512.  
  513.  
  514.  
  515.  
  516.  
  517.                                  Bingo 2.0 Reference
  518.                                           6
  519.  
  520.  
  521.  
  522.  
  523.           Bingo and Larger Screen Displays
  524.           --------------------------------
  525.                EGA, VGA, and MCGA video display cards support displays
  526.           larger than the standard 25 rows by 80 columns.  Bingo does
  527.           support editing on these screen sizes.  Bingo can be set to
  528.           handle screen displays in one of three ways:
  529.                -    Bingo can be set to detect the current screen type and
  530.                     dimensions, and do retrace checking.
  531.                -    Bingo can be set to detect the current screen type and
  532.                     size, but do no retrace checking.
  533.                -    Bingo can be set to switch to 43/50 line mode if it is
  534.                     supported.  No retrace checking will be performed.
  535.           As shipped, Bingo chooses the middle of these three courses.  The
  536.           retrace checking is only done if you are using a color display
  537.           with a 25x80 configuration.
  538.                There is a caveat here though.  Whenever Bingo swaps itself
  539.           out and then swaps itself back in, whether it is through a
  540.           'swap_shell', 'swap_execute', or 'quit_and_save_status' function,
  541.           Bingo: 
  542.  
  543.               !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  544.               !!!                                                  !!!
  545.                !!! will assume the screen size & mode do not change !!!
  546.               !!!                                                  !!!
  547.               !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  548.  
  549.           This is very important.  You cannot change the screen size while
  550.           swapping out without changing it back, or Bingo will become
  551.           *very* confused.  So have a care!!!!
  552.  
  553.  
  554.  
  555.  
  556.  
  557.  
  558.  
  559.  
  560.  
  561.  
  562.  
  563.  
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573.  
  574.  
  575.                                  Bingo 2.0 Reference
  576.                                           7
  577.  
  578.  
  579.  
  580.  
  581.           Bingo's Menu System
  582.           -------------------
  583.                Bingo implements a comprehensive menu structure to aid you
  584.           in utilizing Bingo's functions.  Many people, myself included, do
  585.           not necessarily wish to spend the time to assign every function
  586.           we need to a keyboard equivalent.  This requires a large time
  587.           investment before you can begin using the editor.  On the other
  588.           hand, it is very irritating when you need a particular function
  589.           and cannot use it because you did not have the foresight to
  590.           assigned it to a key combination.  
  591.                Bingo's menu system was designed to handle just this
  592.           situation.  By assigning the 'main_menu' function to a keystroke,
  593.           you effectively have access to *every* function Bingo has. 
  594.           First, greater than 75% of Bingo's functions are directly
  595.           accessible from the menus, grouped in logical sets, following a
  596.           logical hierarchy.  The remaining functions can be accessed by
  597.           selecting the 'eXtras' sub-menu, then the 'Pick & exec' function. 
  598.           This function then allows you to choose from a list of *all*
  599.           supported functions.
  600.                I have found that for most people, it pays to assign your
  601.           most commonly needed functions to keystrokes, and then rely on
  602.           the menu system for the ones which are used to a lesser degree. 
  603.           The logical structure of the menus allows for easy access to less
  604.           frequently needed functions.
  605.                The menus themselves work quite easily.  A list of
  606.           possibilities is presented.  A menubar can be moved up and down
  607.           to make your choice; pressing Return selects the choice.  In
  608.           addition, each choice has a highlighted character; pressing this
  609.           character will automatically select the choice.
  610.                In some cases you may be presented with a child menu.  Here
  611.           again you may make a choice as before, with one additional bit of
  612.           functionality.  If you are in a child menu, pressing the PgUp or
  613.           PgDn keys will move you to the previous or next sibling menu,
  614.           respectively.  
  615.                The Print menu, as well as all of the configuration menus,
  616.           is a multiple menu.  This means that after you have made a
  617.           choice, the action will be executed and you will be returned to
  618.           the menu at the same spot.  I have found that when printing and
  619.           configuring, people usually want to do more than one task.  Menus
  620.           which are multiple will have an asterisk ('*') printed at the
  621.           bottom of the menu border.
  622.                The Escape key always closes the current child menu.  If you
  623.           are at the top menu, it quits the menu system entirely.  To see
  624.           how your mouse, if you have one, interacts with the menus, see
  625.           the section concerning Bingo and a mouse.
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.                                  Bingo 2.0 Reference
  634.                                           8
  635.  
  636.  
  637.  
  638.  
  639.           Bingo's Dialogue Boxes
  640.           ----------------------
  641.                Throughout Bingo, you will encounter many dialogue boxes. 
  642.           There are four main types.  They are:
  643.  
  644.                String Entry Boxes:
  645.  
  646.                     These are the boxes which ask you for string input. 
  647.                The easiest example is when Bingo asks you for a filename. 
  648.                These boxes allow you to enter string input in a flexible
  649.                manner.  A wide variety of keystrokes are available to aid
  650.                in this endeavor.  For a synopsis of these keystrokes, press
  651.                Control-H while you are within a String Entry box, and a
  652.                popup display of the available keystrokes will appear.
  653.                     Pressing <Escape> will abort out of the string entry
  654.                operation.
  655.  
  656.                Yes/No Boxes:
  657.  
  658.                     These are the boxes which require a yes or no answer to
  659.                a question.  An example of this is when you 'quit' a file
  660.                and the file has been modified.  Bingo will ask you if you
  661.                wish to save the file.
  662.                     Each time you enter a Yes/No box, one of the two
  663.                options will be will be highlighted.  This is the default
  664.                option which will be selected if you press <Return>.  By
  665.                using the Left and Right Arrow keys, you can change the
  666.                current selection.  Alternatively, you can press either the
  667.                'y' key (any case) for a yes answer, or the 'n' key (any
  668.                case) for a no answer.
  669.                     Pressing <Escape> will abort the operation.
  670.  
  671.                Non-Editable Display Boxes:
  672.  
  673.                     The easiest example of this type of box is the Help
  674.                box, or the Info box.  This type of box simply displays a
  675.                number of lines within a box.  By using the Up and Down
  676.                arrows (also the space bar) you may scroll by lines, and by
  677.                using the Page Up and Page Down keys you may scroll by
  678.                pages.
  679.                     Any other keystroke will exit the box.
  680.  
  681.  
  682.                List-Picking Boxes:
  683.  
  684.                     The best example of this type of dialogue box occurs
  685.                when the 'directory list picker' pops up.  This type of box
  686.                is very similar to the Non-Editable box discussed above, but
  687.                the idea here is not merely to display information but to
  688.                facilitate making a choice.  There will be a menubar
  689.                highlighted, showing the current selection.  You may move
  690.  
  691.                                  Bingo 2.0 Reference
  692.                                           9
  693.  
  694.  
  695.  
  696.  
  697.                this bar up and down using the arrow and page keys. 
  698.                Pressing <Return> will selection this option.
  699.                     Additionally, the initial character of each selection
  700.                may be highlighted.  If so, pressing the corresponding
  701.                character will automatically select this option.
  702.                     Finally, even if the leading characters of each
  703.                selection are not so highlighted, you may "step" through the
  704.                selections by pressing letter keys.  The menubar will move
  705.                to the next selection which starts with the letter pressed. 
  706.                If necessary, the menubar will wrap to the top of the list
  707.                (Bingo will beep in this case).  In the case of the
  708.                directory picker, the leading '\' characters of directory
  709.                entries will be ignored.
  710.                     As is the custom, the <Escape> key will abort the
  711.                operation.
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.                                  Bingo 2.0 Reference
  750.                                           10
  751.  
  752.  
  753.  
  754.  
  755.           Directory Lister
  756.           ----------------
  757.                One of the extremely useful features of Bingo is its
  758.           directory lister.  Often, Bingo will ask for a filename.  If the
  759.           name you give matches more than one file, in the case of
  760.           wildcards, for instance, the lister will appear with a list of
  761.           matches and all subdirectories in the current directory.  There
  762.           are several features embedded in this lister to assist you in
  763.           choosing a file. 
  764.                First, all subdirectory entries in the current directory
  765.           will are shown at the top, with a '\' character preceding them. 
  766.           Selecting any of these will cause the lister to change to that
  767.           directory.
  768.                Second, pressing a letter causes the Lister to move to the
  769.           next filename whose first character matches the letter pressed. 
  770.           A beep will sound if the search wraps around to the beginning.
  771.                The list is sorted alphabetically by name, but subdirectory
  772.           entries come first.  The last entry is always the New
  773.           Specification entry, which allows you to type in a new
  774.           specification, perhaps another drive if it is necessary. 
  775.                As of version 1.1b, file sizes, dates, and times are also
  776.           shown on the directory list, to aid in your choice.
  777.  
  778.           Bingo and File Names
  779.           --------------------
  780.                Many times during normal operation, Bingo will ask you for a
  781.           filename.  Bingo handles filenames slightly differently than
  782.           plain vanilla DOS.  In particular, let's examine the difference
  783.           between
  784.  
  785.                'thisfile'          &         'thisfile.'
  786.  
  787.           The first does not contain a period.  In this case, Bingo
  788.           automatically appends '.*' to the filename, and presents you with
  789.           a directory list picker.  The second contains the trailing
  790.           period, and so will be used as is.  So, in order to specify a
  791.           file without an extension, you must add the trailing period.
  792.                Why is this done?  Simple laziness.  This allows me to ask
  793.           for file 'test' and be presented with all forms of 'test.*'.  I
  794.           can then hit return on the file which interests me.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.  
  804.  
  805.  
  806.  
  807.                                  Bingo 2.0 Reference
  808.                                           11
  809.  
  810.  
  811.  
  812.  
  813.           The Status Line
  814.           ---------------
  815.                On the bottom line of each window in Bingo's display is the
  816.           status line.  This line communicates several valuable pieces of
  817.           information.  On the left side of the line, the current line and
  818.           column are displayed.  Next are a series of flags:
  819.                       a     Autoindent
  820.                       c     C mode 
  821.                       i     Insert mode
  822.                       m     Matching Mode
  823.                       r     Recording Macro
  824.                       t     Smart Tabs
  825.                       w     Wordwrap
  826.                       z     Zoom mode
  827.           For each of these flags, if the letter is capitalized, it
  828.           indicates that the toggle is on, while a lowercase character
  829.           indicates the option is toggled off.
  830.                Next you will see something looking like [x/y] where 'y' is
  831.           the number of files in the ring, and 'x' is the position of the
  832.           current file in the ring.
  833.                Finally, the full pathname comes.  If it is prefaced with an
  834.           asterisk '*', it means the file has been modified.
  835.                At the end of one of the on screen status lines, you will
  836.           see either one or three little pyramids.  If there is a single
  837.           pyramid, that means it is not the active window.  If there are
  838.           three pyramids, they tell you which is the active window.  If the
  839.           three pyramids are pointing up, the full-width window above the
  840.           status line is the current window.  If the three pyramids point
  841.           to the left, this means that of the two windows above the status
  842.           line, the one on the left is the active window.  If the three
  843.           pyramids point to the right, the window on the right is active.
  844.                The same rules concerning the direction of the pyramids hold
  845.           for inactive status lines, except that only one pyramid will be
  846.           present.
  847.                If this all sounds complicated, don't worry.  Open a few
  848.           windows and move among them; it will become much clearer.
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.                                  Bingo 2.0 Reference
  866.                                           12
  867.  
  868.  
  869.  
  870.  
  871.           Keyinst: The Keyboard Configuration Program
  872.           -------------------------------------------
  873.                Keyinst is the program used to install a keyboard
  874.           configuration into the Bingo executable.  The supplied
  875.           configuration files (*.CFG) give a good example of how to set up
  876.           the file, so this section will simply go over the high points
  877.           again.
  878.                Keyinst is invoked as follows:
  879.  
  880.                     Keyinst <configuration name> <executable name>
  881.  
  882.           It will then read the named configuration file and, using its
  883.           data, rewrite the named executable.  If either of the names is
  884.           missing, Keyinst will prompt for the name.
  885.  
  886.           Key Names
  887.           ---------
  888.           f1-f10    are the function keys
  889.           !f1-!f10  are the shifted function keys
  890.           @f1-@f10  are the control function keys
  891.           #f1-#f10  are the alt function keys
  892.           @<key>    is the control-<key> combination
  893.           #<key>    is the alt-<key> combination
  894.  
  895.           These are named keys:
  896.  
  897.           backspace                          shift_delete
  898.           backtab                            shift_home
  899.           tab                                shift_end
  900.           escape                             shift_pgup
  901.           ctrl_backspace                     shift_pgdn
  902.           alt_backspace                      shift_right_arrow
  903.           return                             shift_left_arrow
  904.           ctrl_return                        shift_up_arrow
  905.           alt_return                         shift_down_arrow
  906.           alt_escape                         ctrl_insert
  907.           ctrl_tab                           ctrl_delete
  908.           alt_tab                            ctrl_home
  909.           alt_equal                          ctrl_end
  910.           alt_minus                          ctrl_pgup
  911.           insert                             ctrl_pgdn
  912.           delete                             ctrl_right_arrow
  913.           home                               ctrl_left_arrow
  914.           end                                ctrl_up_arrow
  915.           pgup                               ctrl_down_arrow
  916.           pgdn                               keypad_plus
  917.           right_arrow                        keypad_minus
  918.           left_arrow                         keypad_divide
  919.           up_arrow                           keypad_aster
  920.           down_arrow                         keypad_return
  921.           shift_insert                       ctrl_keypad_plus
  922.  
  923.                                  Bingo 2.0 Reference
  924.                                           13
  925.  
  926.  
  927.  
  928.  
  929.           ctrl_keypad_minus
  930.           ctrl_keypad_divide
  931.           ctrl_keypad_aster                  Note:  The keynames with
  932.           ctrl_keypad_return                 'grey' in them, as well as
  933.           alt_keypad_plus                    F11, F12, and several others,
  934.           alt_keypad_minus                   denote keys which are
  935.           alt_keypad_divide                  available only if you have an
  936.           alt_keypad_aster                   extended keyboard, and you
  937.           alt_keypad_return                  have the 'Use Extended
  938.           grey_up_arrow                      Keyboard Bios' option turned
  939.           grey_down_arrow                    on.
  940.           grey_left_arrow
  941.           grey_right_arrow
  942.           grey_delete
  943.           grey_end
  944.           grey_home
  945.           grey_insert
  946.           grey_pgup
  947.           grey_pgdn
  948.           ctrl_grey_up_arrow
  949.           ctrl_grey_down_arrow
  950.           ctrl_grey_left_arrow
  951.           ctrl_grey_right_arrow
  952.           ctrl_grey_delete
  953.           ctrl_grey_end
  954.           ctrl_grey_home
  955.           ctrl_grey_insert
  956.           ctrl_grey_pgup
  957.           ctrl_grey_pgdn
  958.           alt_grey_up_arrow
  959.           alt_grey_down_arrow
  960.           alt_grey_left_arrow
  961.           alt_grey_right_arrow
  962.           alt_grey_delete
  963.           alt_grey_end
  964.           alt_grey_home
  965.           alt_grey_insert
  966.           alt_grey_pgup
  967.           alt_grey_pgdn
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.                                  Bingo 2.0 Reference
  982.                                           14
  983.  
  984.  
  985.  
  986.  
  987.  
  988.                The configuration file itself consists of lines of the
  989.           format:
  990.  
  991.                <key specifier> <function identifier>
  992.           or
  993.                <key specifier> macro <macro list>
  994.           or
  995.                ; <comment text>
  996.  
  997.           A line starting with a space is a continuation of the previous
  998.           line.
  999.  
  1000.                <key specifier> is either a simple <key name>, or two key
  1001.           names strung together as <key name>+<key name>.  For instance,
  1002.           for you Wordstar people, control-k q would be entered as
  1003.  
  1004.                @k+q
  1005.  
  1006.           Note: in this case, the Bingo will recognize both the sequence
  1007.           @k+q and @k+Q as the same thing -- case is not significant.
  1008.  
  1009.                The <macro list> is a list of 0 or more function
  1010.           descriptors, as listed in the Function List section, and 0 or
  1011.           more literal occurrences, and 0 or more named keys, in any order. 
  1012.           The literals must be enclosed in single quotes.  The literals
  1013.           will occur in the macro exactly as if they had been typed.  For
  1014.           instance, the line
  1015.  
  1016.                f1    macro 'Chris' return
  1017.  
  1018.           would define the f1 key as my name followed by a return.
  1019.  
  1020.                The following macro would define the Alt-C key to save all
  1021.           current modified files, execute the make command while swapping
  1022.           Bingo out to disk, saving the errors in the ERRS file, then load
  1023.           the ERRS file.
  1024.  
  1025.                #c        macro save_all swap_execute 'make > errs' return
  1026.                          return load_file 'errs.' return
  1027.  
  1028.                A more interesting variant of this is the one I used prior
  1029.           to installing the auto-error processing:
  1030.  
  1031.                #c        macro modify_save_all swap_execute 'make > errs'
  1032.                          return return window_bottom load_file 'errs.'
  1033.                          return
  1034.  
  1035.           This version will attempt to put the errors file in the bottom-
  1036.           most window, and it will initially only save those files as have
  1037.           been modified.
  1038.  
  1039.                                  Bingo 2.0 Reference
  1040.                                           15
  1041.  
  1042.  
  1043.  
  1044.  
  1045.                After adding  the auto-error processing, I added a more
  1046.           complex version of this macro:
  1047.  
  1048.                #c        macro modify_save_all swap_execute 'make > errs'
  1049.                          return return window_one window_split load_file
  1050.                          'errs.' return window_previous window_resize
  1051.                          down_arrow down_arrow down_arrow down_arrow
  1052.                          down_arrow down_arrow return setup_err_parse
  1053.                          'errs.' return return next_error
  1054.  
  1055.           This version saves all modified files, executes Make as before,
  1056.           and returns.  When it returns, it makes sure there is but one
  1057.           window, splits the current window, and loads in the ERRS file. 
  1058.           It then resizes it so the bottom window is smaller, resets the
  1059.           error parsing to the ERRS file, then searches for the next
  1060.           (first) error.
  1061.                This last version is very sweet to use if you have a
  1062.           compiler which generates agreeable error files.
  1063.  
  1064.           'open_end' Identifier
  1065.           ---------------------
  1066.                Keyinst allows the use of the 'open_end' identifier in
  1067.           macros to force Bingo to fetch string input from the keyboard. 
  1068.           For example:
  1069.  
  1070.                f1   macro search open_end 'i' return
  1071.  
  1072.           will execute the search function, wait for the user to input the
  1073.           target string, then input 'i' for the search modifier and do the
  1074.           search.
  1075.                'open_end' is effective only for string input --- single key
  1076.           input situations will not respond to it.
  1077.  
  1078.           'cur_file' Identifier
  1079.           ---------------------
  1080.                Keyinst also allows the use of the 'cur_file' indentifier in
  1081.           macros to expand into the current file's name (less path) in
  1082.           string input.  For example:
  1083.  
  1084.                f1   macro load_file cur_file return
  1085.  
  1086.           will force the reload of the current file, providing it is
  1087.           located in the current directory.
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.                                  Bingo 2.0 Reference
  1098.                                           16
  1099.  
  1100.  
  1101.  
  1102.  
  1103.           Keyinst Command Line Options
  1104.           ----------------------------
  1105.                Keyinst recognizes three command line options.  One is a
  1106.           shortcut:
  1107.  
  1108.                keyinst !
  1109.  
  1110.           tells Keyinst to assume the name of the executable is BE.EXE, and
  1111.           that the name of the configuration file is BINGO.CFG.  I put this
  1112.           in primarily for my own use, as I run Keyinst several times an
  1113.           hour during development.
  1114.  
  1115.                'Keyinst Names' will provide an alphabetical list of all of
  1116.           the function names which are currently recognized.  Useful to
  1117.           have.
  1118.  
  1119.                Likewise 'Keyinst keys' will list all recognized keynames. 
  1120.           Also useful to have.
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.  
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.                                  Bingo 2.0 Reference
  1156.                                           17
  1157.  
  1158.  
  1159.  
  1160.  
  1161.           Bingo & The Mouse
  1162.           -----------------
  1163.                Bingo has the capacity to make extensive use of a Microsoft
  1164.           (trademark and copyright to Microsoft) compatible mouse, should
  1165.           you have one installed.  In order for the mouse to work, three
  1166.           things must be true. 
  1167.  
  1168.                1) It must be connected to the computer properly.  See your
  1169.           mouse manual for instructions.
  1170.                2) You must have your mouse driver installed properly. 
  1171.           Again, see your mouse manual for instructions on how to
  1172.           accomplish this.
  1173.                3) You must have the 'Use Mouse' option turned on, found in
  1174.           the General configuration menu. Bingo is shipped with mouse use
  1175.           turned on.
  1176.  
  1177.                Bingo is designed to allow users of three button mice to
  1178.           make full use of all three buttons.  However, users with two
  1179.           button mice will only lose a little functionality when it comes
  1180.           to programming the mouse, and no functionality at all when it
  1181.           comes to dealing with the menus and dialogue boxes.
  1182.                It is generally easy to tell if the mouse is working; the
  1183.           status line will have four additional "buttons", each consisting
  1184.           of three arrows enclosed in square braces.  Also, to conserve
  1185.           space, the filename will be shown without its full path.
  1186.  
  1187.           The Mouse Cursor
  1188.           ----------------
  1189.                The mouse cursor will appear on your screen as a solid, non-
  1190.           blinking block, which changes color depending on the underlying
  1191.           color.  It should be possible to move the cursor over the entire
  1192.           screen.  If the mouse cursor is present, it means that a response
  1193.           with the mouse is possible.  If it is not visible, this means
  1194.           that at this point, no mouse response makes sense.
  1195.  
  1196.           The Mouse at the General Editing Level
  1197.           --------------------------------------
  1198.                At the general editing screen, Bingo has only one hard coded
  1199.           mouse capability.  However, it does have 18 programmable mouse
  1200.           events. 
  1201.                The hardcoded event centers around the "triple-pyramid"
  1202.           found at the right end of the active status line.  If you move
  1203.           the mouse cursor to this point and press any mouse button, Bingo
  1204.           will execute the equivalent of a 'next_file' function.  This will
  1205.           continue as long as you hold the button down.  Be careful!  The
  1206.           files will cycle at a very fast rate if you hold the button down.
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.                                  Bingo 2.0 Reference
  1214.                                           18
  1215.  
  1216.  
  1217.  
  1218.  
  1219.                The programmable events are handled exactly as key
  1220.           assignments are handled: through Keyinst.  These are the mouse
  1221.           names:
  1222.  
  1223.                Three_buttons                 Left_right_buttons
  1224.                Left_middle_buttons           Multiple_left_button
  1225.                Single_left_button            Right_middle_buttons
  1226.                Multiple_right_button         Single_right_button
  1227.                Multiple_middle_button        Single_middle_button
  1228.  
  1229.                Single_up_arrow               Single_down_arrow
  1230.                Single_left_arrow             Single_right_arrow
  1231.                Multiple_up_arrow             Multiple_down_arrow
  1232.                Multiple_left_arrow           Multiple_right_arrow
  1233.  
  1234.                The first ten are concerned simply with what happens when
  1235.           you press the corresponding button sequence.  Note that users of
  1236.           two-button devices will only be able to utilize five of these,
  1237.           those dealing with the left and right buttons.
  1238.                The second eight refer to the 4 "hot spots" on the active
  1239.           status line.  There are two for each button, one for a single
  1240.           click and one for a double click.
  1241.  
  1242.                Now that you know of these event names, what can you do with
  1243.           them?  Well, you can assign them anything you could assign a key. 
  1244.           In addition, a special function is provided to help deal with the
  1245.           mouse:
  1246.  
  1247.                snap_to_mouse_xy:        this function moves the cursor to
  1248.                                         the current mouse position.  If
  1249.                                         necessary, it will change the
  1250.                                         active window.
  1251.  
  1252.           Combining this with other functions, quite powerful mouse events
  1253.           can be programmed.  For example:
  1254.  
  1255.           Single_left_button       snap_to_mouse_xy
  1256.           Single_right_button      macro snap_to_mouse_xy point_mark
  1257.  
  1258.           The first simply moves the cursor, while the second moves the
  1259.           cursor and drops a point mark.
  1260.  
  1261.                The eight "buttons" can also be programmed as if they were
  1262.           keys.
  1263.             
  1264.           Single_down_arrow        cursor_down
  1265.           Double_down_arrow        down_page
  1266.  
  1267.           Here, this has defined the down arrow button to respond with a
  1268.           cursor_down if a single click occurs on it, or a down_page if a
  1269.           double click occurs on it.  
  1270.  
  1271.                                  Bingo 2.0 Reference
  1272.                                           19
  1273.  
  1274.  
  1275.  
  1276.  
  1277.                These "buttons" work a little differently than you might
  1278.           expect -- as long as you hold the mouse button down, the function
  1279.           will repetitively execute.  So, if you double click on the down
  1280.           arrow "button" and hold the second click down, you will see the
  1281.           file whiz by at a truly astonishing speed.
  1282.                These eighteen events give you the user an unparalleled
  1283.           degree of control over how the mouse responds.
  1284.  
  1285.           The Mouse and The Menus
  1286.           -----------------------
  1287.                The mouse would not be very useful if it was not well
  1288.           integrated into the menu system.  Great pains have been taken to
  1289.           make mouse use easy and intuitive with respect to the menu
  1290.           system.  
  1291.                Basically, it is very simple.  The left mouse button selects
  1292.           something, and the right mouse button closes the current menu. 
  1293.           However, there are a few refinements.
  1294.                If the item you select with a single left click is in the
  1295.           rightmost menu, the effect is the same as if you had moved to
  1296.           that selection and hit <return>.  If the item is not the
  1297.           rightmost menu, say the it is in the Main menu and you currently
  1298.           have the Block menu open, then you will simply be moved to the
  1299.           selection, with the other menus closed for you.  However, no
  1300.           equivalent <return> will be executed. 
  1301.                If, however, you use a double left click, the selection will
  1302.           be executed regardless of where it was on the menu hierarchy. 
  1303.           Any extra open menus will be closed to bring you to the selected
  1304.           level.
  1305.                Likewise, a single right click will close the current menu. 
  1306.           However, a double click will close *all* open menus.
  1307.                Note that this gives you some capabilities which are not
  1308.           available from the keyboard.
  1309.                If the above sounds complicated, don't worry.  In practice,
  1310.           it is very easy.  I would suggest you restrict yourself to single
  1311.           clicks when you begin, then move to double clicks when you are
  1312.           sure of what a single click would do.  You will very quickly find
  1313.           that the menus are effortlessly intertwined with the mouse.
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.                                  Bingo 2.0 Reference
  1330.                                           20
  1331.  
  1332.  
  1333.  
  1334.  
  1335.           The Mouse & Dialogue Boxes
  1336.           --------------------------
  1337.                Throughout Bingo, you will encounter many dialogue boxes. 
  1338.           There are four main types, and all support mouse use where
  1339.           appropriate. They are:
  1340.  
  1341.                String Entry Boxes:
  1342.  
  1343.                     These are the boxes which ask you for string input. 
  1344.                The easiest example is when Bingo asks you for a filename. 
  1345.                There are only a few mouse options in these boxes; most of
  1346.                the time you must enter text from the keyboard.
  1347.                     However, there are three supported button events.  A
  1348.                single left click has the same effect as a <return>; it
  1349.                accepts the current string.  A double left click wipes out
  1350.                the string; it in effect is a Control-Y equivalent. 
  1351.                Finally, any right button click is the equivalent of an
  1352.                <Escape> key.
  1353.  
  1354.                Yes/No Boxes:
  1355.  
  1356.                     These are the boxes which require a yes or no answer to
  1357.                a question.  The easiest example of this is in the
  1358.                configuration options, where you are asked if you wish to
  1359.                toggle the option.  By placing the mouse cursor over the
  1360.                [Yes] selection and pressing the left mouse button, you
  1361.                answer in the affirmative.  Likewise, placing the mouse
  1362.                cursor over the [No] selection and pressing the left button
  1363.                answers in the negative.  
  1364.                     As usual, pressing the right mouse button is equivalent
  1365.                to the <Escape> key.
  1366.  
  1367.                Non-Editable Display Boxes:
  1368.  
  1369.                     The easiest example of this type of box is the Help
  1370.                box, or the Info box.  If there are more lines than fit
  1371.                within the box, up and down arrow boxes will appear in the
  1372.                upper and lower right hand corners of the box.  By moving
  1373.                the mouse cursor to the corresponding box and holding a
  1374.                mouse button down, the display will scroll in the
  1375.                corresponding direction.
  1376.                     As expected, the right button exits.
  1377.  
  1378.                List-Picking Boxes:
  1379.  
  1380.                     The best example of this type of dialogue box occurs
  1381.                when the 'directory list picker' pops up.  Here, as in the
  1382.                Non-Editable Display Boxes, up and down arrow boxes will
  1383.                appear if necessary.  Furthermore, moving the mouse cursor
  1384.                to a particular selection and pressing a single left key
  1385.                will move the menubar to that selection.
  1386.  
  1387.                                  Bingo 2.0 Reference
  1388.                                           21
  1389.  
  1390.  
  1391.  
  1392.  
  1393.                     Moving the mouse cursor to a particular selection and
  1394.                double left clicking will select that particular selection
  1395.                as if you had moved the menubar there and typed <return>.
  1396.                     As always, the right button is the equivalent of typing
  1397.                <Escape>.
  1398.  
  1399.           The Mouse and The ASCII Table
  1400.           -----------------------------
  1401.                The mouse is also tightly integrated with the ASCII table
  1402.           function, 'ascii_table'.  Here, single left clicking on a
  1403.           character moves the cursor to it (updating the display).  Double
  1404.           left clicking selects the character and adds it to the string.
  1405.                Single left clicking on the [Bspace] bar is equivalent to
  1406.           typing <backspace>; it removes one character from the string.  A
  1407.           double left click on this spot zeroes the string entirely.
  1408.                As always, clicking the right button is the equivalent of
  1409.           typing <Escape>.
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.                                  Bingo 2.0 Reference
  1446.                                           22
  1447.  
  1448.  
  1449.  
  1450.  
  1451.                                     Basic Editing
  1452.                                     -------------
  1453.  
  1454.                Basic editing concerns deletion and insertion of characters. 
  1455.           Bingo provides a number of ways to delete text without recurse to
  1456.           the block operation.  Four of these operations push deleted text
  1457.           onto the unkill stack -- 'del_eol', 'del_line', 'del_bol', and
  1458.           'del_word'.   
  1459.  
  1460.           The Destructive Backspace
  1461.           -------------------------
  1462.                Bingo supports three backspace deletion modes.  The first is
  1463.           the old favorite, the simple one character destructive backspace. 
  1464.                The second mode destructively deletes back to the previous
  1465.           tab stop, provided there are only spaces in the way.  If there
  1466.           are non-space characters in the way, it functions as in mode 1.
  1467.                The final mode deletes all the way to the left margin
  1468.           (column 1), provided it consists only of spaces.  Again, if there
  1469.           are non-space characters, it functions as mode 2.
  1470.  
  1471.           Delete EOL vs. Delete Line vs. Delete BOL
  1472.           -----------------------------------------
  1473.                The 'del_eol' function deletes the remainder of the line
  1474.           from the cursor position.  If you are on the end of a line, it
  1475.           brings the next line up to the current position.
  1476.                The 'del_line' simple deletes the entire current line, no
  1477.           questions asked.  
  1478.                The 'del_bol' deletes from the current position back to the
  1479.           beginning of the line.  If you are at the begging of a line,
  1480.           nothing happens.
  1481.                In all three cases, the deleted text is pushed onto the undo
  1482.           stack.
  1483.  
  1484.           Delete Word
  1485.           -----------
  1486.                The 'del_word' function deletes the word you are on and any
  1487.           trailing spaces after it.  Unlike the'next_word' & 'prev_word'
  1488.           functions, 'del_word' considers words to be delimited by spaces. 
  1489.           If you are at the end of a line, it works like a 'del_eol'
  1490.           function.  The deleted text is pushed onto the unkill stack;
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503.                                  Bingo 2.0 Reference
  1504.                                           23
  1505.  
  1506.  
  1507.  
  1508.  
  1509.                                     File Handling
  1510.                                     -------------
  1511.  
  1512.                Bingo has extensive file handling capabilities, more than
  1513.           almost any other editor available.  Literally, there is little
  1514.           you could want to do with a file which Bingo will not let you do. 
  1515.           Here are some of the high points in file handling with Bingo.
  1516.  
  1517.           Edit_file & Load_file
  1518.           ---------------------
  1519.                Editing a file with an 'edit_file' function may not always
  1520.           physically load the file from disk.  If the asked for name is
  1521.           already being edited, you will simply be moved to the proper
  1522.           buffer.  Conversely, loading a file with the 'load_file' function
  1523.           will always load the file from disk; if it exists in the ring
  1524.           currently, the in-memory version will be killed first.
  1525.  
  1526.           Choose_file
  1527.           -----------
  1528.                The 'choose_file' function pops up a list of the current
  1529.           files in the ring, and allows you to choose from among them. 
  1530.           Also, the option to edit a new file exists; this option is
  1531.           equivalent to the 'edit_file' function.
  1532.  
  1533.           Rename_file
  1534.           -----------
  1535.                The 'rename_file' function changes nothing on the disk until
  1536.           you save the file explicitly; however, it does change the name of
  1537.           the in-memory file.
  1538.  
  1539.           Quit
  1540.           ----
  1541.                This is the usual way to exit a file.  If the file has not
  1542.           been modified, Bingo will immediatley quit the file.  If the file
  1543.           has been modified, Bingo will ask you if you wish to save the
  1544.           file.  Remember that in this case, a <return> indicates a yes
  1545.           answer.
  1546.  
  1547.           Quit_all
  1548.           --------
  1549.                This function repeatedly does a 'quit_file' on each file in
  1550.           the ring.  You can abort the operation at any time by typing
  1551.           <Escape> in response to a query.
  1552.  
  1553.           Abort & Abort_all
  1554.           -----------------
  1555.                These are very dangerous functions.  'abort' exits the file,
  1556.           no questions asked.  'abort_all' exits the program, no questions
  1557.           asked.
  1558.  
  1559.  
  1560.  
  1561.                                  Bingo 2.0 Reference
  1562.                                           24
  1563.  
  1564.  
  1565.  
  1566.  
  1567.           Delete_file
  1568.           -----------
  1569.                This is just an easy way to delete an arbitrary file on
  1570.           disk.  No more, no less, but sometimes you do need free up disk
  1571.           space.
  1572.  
  1573.           Zap_file
  1574.           --------
  1575.                This allows you to wipe out the disk copy of the currently
  1576.           active file.  It does nothing to the in-memory version of the
  1577.           file itself.
  1578.  
  1579.           Modify_save & Modify_save_all
  1580.           -----------------------------
  1581.                These functions respectively save the current file or each
  1582.           file if and only if it has been modified.  Useful when saving
  1583.           files to compile, so that only modified files get recompiled.
  1584.  
  1585.           Switch_file
  1586.           -----------
  1587.                This function essentially performs a 'quit_file' followed by
  1588.           an 'edit_file'.
  1589.  
  1590.  
  1591.  
  1592.  
  1593.  
  1594.  
  1595.  
  1596.  
  1597.  
  1598.  
  1599.  
  1600.  
  1601.  
  1602.  
  1603.  
  1604.  
  1605.  
  1606.  
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.                                  Bingo 2.0 Reference
  1620.                                           25
  1621.  
  1622.  
  1623.  
  1624.  
  1625.                                       Searching
  1626.                                       ---------
  1627.  
  1628.                Searching in Bingo is extremely quick, mainly because the
  1629.           functions are hand-coded in assembly language for speed.  Other
  1630.           than that, there is very little to say about searching
  1631.           capabilities in Bingo.  The search algorithm is simple, but with
  1632.           macros you can build some complicated abilities in.
  1633.                It is easy to limit the search area to a specific range by
  1634.           line marking a range of text.  Any search (or replace) which
  1635.           starts within a block will not move past the end of the block. 
  1636.           Basically, this means that no search or replace will continue
  1637.           past the end of a block.
  1638.                The 'C' option in the 'search' function will count the
  1639.           number of occurrences of the target string in the rest of the
  1640.           search area.
  1641.                The Global option for search and replace operations starts
  1642.           from the current cursor position, not from the top of the file.
  1643.                Try the Search & Macro capability -- it is sharp.
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.  
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661.  
  1662.  
  1663.  
  1664.  
  1665.  
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677.                                  Bingo 2.0 Reference
  1678.                                           26
  1679.  
  1680.  
  1681.  
  1682.  
  1683.                                       Navigation
  1684.                                       ----------
  1685.  
  1686.                Navigation in Bingo is very straightforward.  You may move
  1687.           in terms of characters, lines, words, windowfuls, and the entire
  1688.           file.  You can also jump to the beginning and end of a marked
  1689.           block.  Finally, you can jump to a specified line, or by a
  1690.           relative number of lines, in the file using the Jump function.
  1691.                In addition, Bingo supports placemarks.  I had never really
  1692.           used placemarks much, or "bookmarks" as they are sometimes
  1693.           called.  But a buddy of mine told me to try them when in big
  1694.           files, and I was impressed.  But the editor I tried them in
  1695.           allowed only one; this is just not enough.  So I went one better. 
  1696.           Actually, I went 9 better.
  1697.                Bingo provides 10 placemarks.  You can drop one, jump to
  1698.           one, or pop up a list of the current placemarks.  Each placemark
  1699.           defines a file, a line, and a column.  When you try to jump to a
  1700.           placemark and the file it pertains to is not in the ring, the
  1701.           file will be fetched.
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723.  
  1724.  
  1725.  
  1726.  
  1727.  
  1728.  
  1729.  
  1730.  
  1731.  
  1732.  
  1733.  
  1734.  
  1735.                                  Bingo 2.0 Reference
  1736.                                           27
  1737.  
  1738.  
  1739.  
  1740.  
  1741.                                     Block Handling
  1742.                                     --------------
  1743.  
  1744.           Marking
  1745.           -------
  1746.                Block marking is extremely flexible.  Three types of marking
  1747.           are supported.  Line marking considers lines to be the smallest
  1748.           indivisible chunks of text.  It is primarily used when editing
  1749.           large sections of program code, since much of this type of
  1750.           editing involves moving lines.
  1751.                Point marking, on the other hand, considers single
  1752.           characters to be the smallest indivisible portions of text.  this
  1753.           is useful for replicating portions of lines, rather than whole
  1754.           lines.  Marking types cannot be mixed!
  1755.                While Point marking "snakes" the mark from one point to the
  1756.           next, Vertical marking lets you define corners of a column-
  1757.           oriented block.
  1758.                In all three cases, marking proceeds as follows: go to the
  1759.           beginning of the block you wish to mark; execute the mark
  1760.           function you wish to apply; move to the end of the block you wish
  1761.           to mark; execute the mark function you wish to apply.
  1762.                Note that block marking does not get "turned on" and "turned
  1763.           off".  You simply mark the boundaries of the block.  If two ends
  1764.           already exist, Bingo will always try to increase the size of the
  1765.           block.  If the new mark is inside the mark, Bingo will replace
  1766.           the "oldest" mark with the new mark.
  1767.                You can also use the 'extend_mark' function.  This simply
  1768.           extends the current marking scheme to the current cursor
  1769.           position.  If there is no mark in the file, 'Extend_mark' will
  1770.           display an error message.
  1771.  
  1772.           Operations on Blocks
  1773.           --------------------
  1774.                Bingo supports two very different sets of block operations. 
  1775.           The first set will be familiar to users of many programming
  1776.           editors, while the second will bring back memories of any
  1777.           Wordstar compatible editor they may have used.
  1778.                The first set of operations consists of three functions:
  1779.           'cut', 'copy', 'paste'.  'cut' snips the marked region to the
  1780.           block buffer, removing it from the file.  'copy' does the same
  1781.           thing, but it leaves the marked text intact in the file.  In both
  1782.           cases, if nothing is marked and you have this option turned on,
  1783.           Bingo will assume you wish the current line to be linemarked.
  1784.                'paste' is very simple: whatever is currently in the block
  1785.           buffer is placed at the current cursor position, based on the
  1786.           marking method used.  If the contents were point marked, the
  1787.           contents are simply 'squirted' into the text.  If the contents
  1788.           were line marked, the lines are inserted above the current line.
  1789.  
  1790.  
  1791.  
  1792.  
  1793.                                  Bingo 2.0 Reference
  1794.                                           28
  1795.  
  1796.  
  1797.  
  1798.  
  1799.                There is also an alternate type of paste operation, that of
  1800.           'paste_replace'.  In this case, the paste buffer's contents
  1801.           overwrite the needed amount of space in the text, rather than
  1802.           squirting between existing text.  This type of pasting will only
  1803.           work for Column and Line marked blocks.
  1804.                The second type of block operations available are similar in
  1805.           nature to those used by Wordstar-compatible editors.  Block
  1806.           operations consist of three steps: mark the text, move to the
  1807.           destination position, invoke the function.
  1808.                'block_move' moves the currently marked blocked of text to
  1809.           the current cursor position.  'block_copy' does the same thing,
  1810.           except it leaves a copy behind.
  1811.                'block_delete' is functionally identical to Cut, except that
  1812.           it requires that a block be marked; the setting of the auto
  1813.           linecut toggle has no effect on 'block_delete'.
  1814.  
  1815.           Named Buffers
  1816.           -------------
  1817.                In addition to the default paste buffer, Bingo supports 26
  1818.           named buffers, 'a'-'z'.  In order to change which buffer is
  1819.           currently in use, use the 'name_buffer' function.  Press the
  1820.           letter of the buffer you want, or <return> for the default
  1821.           buffer.  Until you change the buffer, Bingo will use the
  1822.           currently named buffer for all its operations.  All buffers will
  1823.           be saved when a swapping operation is being done.
  1824.  
  1825.           Miscellaneous Functions
  1826.           -----------------------
  1827.                The 'buffer_info' function displays various pertinent info
  1828.           about all the paste buffers, as well as which buffer is the
  1829.           currently active one.  
  1830.                The 'look_buffer' function will display the current contents
  1831.           of the current paste buffer in a non-editable window.
  1832.                The 'report_bsize' function reports the size of the
  1833.           currently marked block in terms of lines and characters.
  1834.  
  1835.  
  1836.  
  1837.  
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.                                  Bingo 2.0 Reference
  1852.                                           29
  1853.  
  1854.  
  1855.  
  1856.  
  1857.                                       Utilities
  1858.                                       ---------
  1859.  
  1860.                Bingo provides large number of utilities to be used to
  1861.           manipulate text.  Functions are available to:
  1862.  
  1863.                - change the case of a block
  1864.                - strip the high bit from characters in a block
  1865.                - place tabs within text, and expand tabs within text
  1866.                - shift blocks a certain number of spaces
  1867.                - align lines with other lines
  1868.                - sort blocks, in ascending or descending order, on a
  1869.                particular column
  1870.                - fill a vertically-marked block with a specific character 
  1871.                - format a paragraph
  1872.                - count the number of words over a span of lines
  1873.                - insert the current time and date into the file
  1874.  
  1875.                The big thing with the utilities is: play with them.  They
  1876.           allow you to do some really useful things to your text. 
  1877.           Particularly, entab/detab are very useful when importing files
  1878.           from other systems/editors.
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.                                  Bingo 2.0 Reference
  1910.                                           30
  1911.  
  1912.  
  1913.  
  1914.  
  1915.                                    Extra Functions
  1916.                                    ---------------
  1917.  
  1918.           Help
  1919.           ----
  1920.                The 'help' function attempts to read the file BINGO.HLP
  1921.           located in the same directory as BE.EXE.  This file can consist
  1922.           of anything you wish, and contain as many lines as you wish (it
  1923.           must fit into memory...).
  1924.  
  1925.           Info
  1926.           ----
  1927.                This function simply brings up some useful info, such as the
  1928.           size each file will be when written to disk, current date and
  1929.           time, etc.
  1930.  
  1931.           Pick & Exec
  1932.           -----------
  1933.                This function asks for a function descriptor to execute. 
  1934.           The same function descriptors are used as are used by Keyinst. 
  1935.           If you give it an unrecognized descriptor, a list of all
  1936.           supported functions are popped up for your convenience.  If you
  1937.           give it substring, such as 'win', all functions descriptors which
  1938.           contain 'win' anywhere will be shown; in this case the window
  1939.           functions.  Tie this to an easy to remember key and all of
  1940.           Bingo's functions are at your fingertips.  
  1941.                This is also useful when you are trying to remember a
  1942.           particular function descriptor and you don't have the
  1943.           documentation handy.
  1944.  
  1945.           Quit and Save Status
  1946.           --------------------
  1947.                This simply saves the current Bingo status information,
  1948.           copies of all current files, and exits.  When you next start
  1949.           Bingo, it will ask if you wish to restore Bingo to its previous
  1950.           state.  If you say yes, you will be placed exactly where you left
  1951.           off.  If you indicate no, Bingo will proceed normally, leaving
  1952.           the suspension files in place to be dealt with the next time
  1953.           Bingo is invoked.
  1954.                This function is ultra-useful since it allows for easy
  1955.           interruptions when you are working.
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.                                  Bingo 2.0 Reference
  1968.                                           31
  1969.  
  1970.  
  1971.  
  1972.  
  1973.           Global
  1974.           ------
  1975.                This is an *extremely* powerful function.  When invoked, it
  1976.           asks for a keystroke to execute globally.  The keystroke can
  1977.           invoke a macro, or simple be tied to a function.  For each file
  1978.           in the ring, Bingo will ask if you wish the function to be
  1979.           executed; your options are the same as they are when doing a
  1980.           search & replace operation: 
  1981.                Y         Yes, do operation, go to next file
  1982.                N         No, don't do operation, but do go to next file
  1983.                O         Yes, do the operation, but abort the global
  1984.                          operation afterwards.
  1985.                G         Yes, do the operation, and do it for all remaining
  1986.                          files without asking.
  1987.                Q         Abort the global operation right now.
  1988.           You must be *very* careful when using this operation; any
  1989.           functions which change the number of files in the ring can be
  1990.           dangerous.  Be prudent when using it, and you will be fine, use
  1991.           it without some forethought, and you may get bitten and regret
  1992.           it.
  1993.  
  1994.           Ascii_table
  1995.           -----------
  1996.                This function serves a dual purpose.  First, it will pop up
  1997.           a display of all 256 characters, serving as a handy reminder of
  1998.           the characters available.  As you move the cursor over the table,
  1999.           the decimal, octal, hexadecimal, and mnemonic values  if
  2000.           appropriate.
  2001.                Further, by moving onto a particular character and hitting
  2002.           return, you will add this character to the string displayed at
  2003.           the top.  You can build a string up to about 30 characters in
  2004.           lenngth.  The <Backspace> key will delete the last character on
  2005.           the string.  When you press <Escape> to leave, the contents of
  2006.           the string will be inserted into the text at the current cursor
  2007.           postition.
  2008.  
  2009.  
  2010.  
  2011.  
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.                                  Bingo 2.0 Reference
  2026.                                           32
  2027.  
  2028.  
  2029.  
  2030.  
  2031.                                   System Operations
  2032.                                   -----------------
  2033.  
  2034.                Bingo supports a number of system operations.  While they
  2035.           are not large in number, they are large in utility.
  2036.  
  2037.           Changing Directories
  2038.           --------------------
  2039.                The 'chdir' function will allow you to change the currently
  2040.           logged directory, or even drive.  Not used often, but when it is
  2041.           needed, it tends to be *really* needed.
  2042.  
  2043.           Simple Execution & Shelling
  2044.           ---------------------------
  2045.                The 'exec_command' function simply executes a given DOS
  2046.           command line and returns.  It does not do anything fancy, and
  2047.           Bingo will remain in memory (consuming quite a bit of memory) but
  2048.           it is fast and simple for issuing short commands.
  2049.                The 'shell' function is identical to 'exec_command', except
  2050.           it takes no arguments.  It simply gives you a DOS shell.
  2051.  
  2052.           Swap Execution & Shelling
  2053.           -------------------------
  2054.                More often than not, particularly in the case of executing
  2055.           command-line compilers, you simply can't afford to let Bingo hang
  2056.           around in memory, since it consumes a bit.  So Bingo provides two
  2057.           other methods for executing commands.  While they appear
  2058.           identical in form and function to the previous pair of functions,
  2059.           'swap_execute' & 'swap_shell', are much more interesting.  
  2060.                While they, too, execute a command or shell to DOS, prior to
  2061.           doing so, they save all relevant information such as copies of
  2062.           the current files, etc., then swap Bingo out of memory.  When
  2063.           this happens, the ~10k kernel of BSWAP.COM is left behind to
  2064.           manage things in Bingo's absence.  When the command is
  2065.           terminated, Bingo will reappear, load all the state info saved
  2066.           previously, and for all intents and purposes, you are right where
  2067.           you left off.  You can define macros across this gap, your
  2068.           placemarks stay intact, etc.  
  2069.                The cost is a small bit of speed when Bingo saves the state
  2070.           information and reads it again later, but it is negligible for
  2071.           the performance return.  It is ideal for running command-line
  2072.           compilers and other memory intensive programs from within Bingo.
  2073.                One thing to remember: the size of your paste buffers as
  2074.           well as the size of your undo stack affect the time it takes to
  2075.           save and restore Bingo's status.  Keep this in mind when you are
  2076.           configuring the stack size, and when you are utilizing multiple
  2077.           paste buffers.
  2078.                In versions prior to 1.1b, Bingo would not swap shell
  2079.           properly on some machines while running DOS 4.00 and higher. 
  2080.           This has been rectified.
  2081.  
  2082.  
  2083.                                  Bingo 2.0 Reference
  2084.                                           33
  2085.  
  2086.  
  2087.  
  2088.  
  2089.                If your machine should for some reason have to be reset
  2090.           while Bingo is swapped out (something that happens when you are
  2091.           developing software), the next time you start Bingo, it will
  2092.           treat the swap files as if they were suspension files, and ask
  2093.           you if you wish to restore Bingo to its previous state.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102.  
  2103.  
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122.  
  2123.  
  2124.  
  2125.  
  2126.  
  2127.  
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133.  
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140.  
  2141.                                  Bingo 2.0 Reference
  2142.                                           34
  2143.  
  2144.  
  2145.  
  2146.  
  2147.                                         Macros
  2148.                                         ------
  2149.  
  2150.                Bingo provides tremendous support for the creation,
  2151.           management, and execution of keyboard macros.  This level is
  2152.           support was indicated by the author's own experience in
  2153.           developing Bingo.  
  2154.                I started using Bingo to develop Bingo very early on in
  2155.           Bingo's life (it didn't even have a search function at this time)
  2156.           in the hopes that this would ferret out bugs more quickly than
  2157.           testing would.  However, one of the things I missed from my
  2158.           previous editor was the ability to define and replay macros on
  2159.           the fly.  In addition, I felt my previous editor was missing some
  2160.           key functionality when it came to dealing with the keyboard, so I
  2161.           had the opportunity to "do macros right".  Of course, my
  2162.           definition of useful macros may differ from yours, but...
  2163.  
  2164.                     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  2165.                     !!!!                                       !!!!
  2166.                     !!!! Macros from versions prior to 2.0 are !!!!
  2167.                     !!!!                  not                  !!!!
  2168.                     !!!! compatible with version 2.0 and above !!!!
  2169.                     !!!!                                       !!!!
  2170.                     !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  2171.  
  2172.           Macro Space
  2173.           -----------
  2174.                Bingo allows for a macro space of 2048 macro tokens. A token
  2175.           is either a function identifier, or a literal character.  While
  2176.           this may not seem like very much, to date I have not yet filled
  2177.           half of it, except in artificial testing situations.  Further,
  2178.           when a key is undefined or redefined, any macro space it used is
  2179.           reclaimed.
  2180.                Bingo allows a maximum of 200 one or two key sequences to be
  2181.           defined; again, space in this table is dynamically reclaimed when
  2182.           possible.
  2183.  
  2184.           Defining Macros
  2185.           ---------------
  2186.                There are three ways to define macros, all very similar. 
  2187.           You can define the scrap key to hold a macro, a single key to
  2188.           hold a macro, or a two key combination to hold a macro.  Any of
  2189.           these functions will also end a macro definition if one is
  2190.           currently in progress.
  2191.                Macros can be defined across any number of activities. 
  2192.           Pressing <Escape> at any time as the response to a query from
  2193.           Bingo will end the macro presently being recorded.
  2194.  
  2195.  
  2196.  
  2197.  
  2198.  
  2199.                                  Bingo 2.0 Reference
  2200.                                           35
  2201.  
  2202.  
  2203.  
  2204.  
  2205.           Saving Macros
  2206.           -------------
  2207.                Using the single key save and load functions, you can save
  2208.           favorite macros to named files for later recall.  Single saving
  2209.           also saves the key sequence the macro is attached to, and loading
  2210.           it in again will redefine the key.
  2211.  
  2212.           Saving the Entire Key Set
  2213.           -------------------------
  2214.                Bingo also allows you to save the entire key table,
  2215.           including all key assignments and all macros, for later recall. 
  2216.           Recalling a keyset file will overwrite the entire key table, so
  2217.           be warned.
  2218.  
  2219.           Executing a Macro File
  2220.           ----------------------
  2221.                You may also execute any macro which was single saved to a
  2222.           file at any time.  This executes it one, without disturbing the
  2223.           current key table assignments.  Good for macros used
  2224.           infrequently.
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257.                                  Bingo 2.0 Reference
  2258.                                           36
  2259.  
  2260.  
  2261.  
  2262.  
  2263.                                        Windows
  2264.                                        -------
  2265.  
  2266.           Window_split, _edit, _load & _find
  2267.           ----------------------------------
  2268.                The first three of these functions create new windows from
  2269.           the current window.  Window_split simply splits the current
  2270.           window into two, both containing the same file.
  2271.                Window_edit essentially performs a split, then executes an
  2272.           edit_file function.
  2273.                Window_load essentially performs a split, then a load_file
  2274.           function.
  2275.                Window_find, on the other hands, changes to the nearest
  2276.           window containing the named file.  If the file is not currently
  2277.           contained in a window, an error message is displayed.
  2278.  
  2279.           Window_vertical
  2280.           ---------------
  2281.                Starting in version 2.0, Bingo provides the ability to split
  2282.           windows vertically.  There are some restrictions, however. 
  2283.           Vertical windows must always exist in pairs; that is, two windows
  2284.           sharing one status line.  They are even resized together.  This
  2285.           is not a large problem, but you should be aware of it.
  2286.  
  2287.           Window_resize
  2288.           -------------
  2289.                This function allows you to change the vertical size of a
  2290.           window, as well as the window below the current one.  
  2291.  
  2292.           Window_one & Window_zoom
  2293.           ------------------------
  2294.                While window_one and window_zoom superficially perform the
  2295.           same action, remember that zoom is simply a toggle, while the
  2296.           'window_one' function eliminates all windows except the current,
  2297.           growing the current window to full size.
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.  
  2315.                                  Bingo 2.0 Reference
  2316.                                           37
  2317.  
  2318.  
  2319.  
  2320.  
  2321.                                        Printing
  2322.                                        --------
  2323.  
  2324.                "The main thing to remember about printing is, it's
  2325.           dangerous."  That's what was true about versions prior to 2.0. 
  2326.           However, with the advent of version 2.0, extensive checking is
  2327.           done, and Bingo will detect an inactive parallel or serial
  2328.           device.
  2329.                You can print a file or a linemarked block; send a linefeed
  2330.           or formfeed character, or send a sequence of ASCII values.  
  2331.                Also notice that you are asked if you want line numbers
  2332.           printed out with each line.  Kudos to Bob Boyken for this idea!
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357.  
  2358.  
  2359.  
  2360.  
  2361.  
  2362.  
  2363.  
  2364.  
  2365.  
  2366.  
  2367.  
  2368.  
  2369.  
  2370.  
  2371.  
  2372.  
  2373.                                  Bingo 2.0 Reference
  2374.                                           38
  2375.  
  2376.  
  2377.  
  2378.  
  2379.                                 Error Parsing and Undo
  2380.                                 ----------------------
  2381.  
  2382.           How Error Parsing Works
  2383.           -----------------------
  2384.                Bingo provides the capability to automatically parse
  2385.           compiler generated error messages.  The procedure for this is
  2386.           fairly simple.
  2387.                First, you must have a text file containing the error output
  2388.           of the compiler (or assembler) in question.  This usually
  2389.           obtained by running said compiler and redirecting its output to a
  2390.           file.  Bring this file into the editor.
  2391.                Next, call the 'setup_err_parse' function, and give it the
  2392.           name of the file.  If the name matches a file in the ring, Bingo
  2393.           will tell you that error processing is setup properly.
  2394.                Now it is simple; simple call the 'next_error' or
  2395.           'prev_error' functions.  The following things will happen:
  2396.  
  2397.                1)   Bingo will see if a next (or previous) error can be
  2398.                found.  If not, it will report that no more errors exist.
  2399.                2)   Assuming an error line is found, the filename and line
  2400.                number will be picked out of the line.  Bingo will perform
  2401.                and edit_file operation on the filename, then jump to the
  2402.                offending line.  All of this will happen within the current
  2403.                window.
  2404.                3)   Also, any onscreen window which contains the file being
  2405.                parsed will be updated.  The current error line will be
  2406.                highlighted automatically.
  2407.  
  2408.           As you can see, error parsing is super useful.  For a further
  2409.           example of how it works, see the example macro in the section on
  2410.           the Keyinst program.
  2411.  
  2412.           Error Parsing Method
  2413.           --------------------
  2414.                Bingo parses error files using a "fuzzy" or "best-guess"
  2415.           algorithm.  It checks each line as follows.
  2416.                First, Bingo attempts to find a valid filename on the line. 
  2417.           The filename must contain a period, and it must have a file
  2418.           extension.
  2419.                After finding such a filename, Bingo verifies that the named
  2420.           file exists on disk or in the current ring.  If it does, Bingo
  2421.           now begins to look for the line number within the named file.  
  2422.                Bingo will look for the first number to follow the filename,
  2423.           and use this as the line number.
  2424.                If both a filename & a line number are found, the line will
  2425.           be recognized as a valid error/warning line. 
  2426.                This algorithm will work for the Borland and Microsoft
  2427.           developmental tools.  However, in some cases, you may have to
  2428.           consult your manual in order to find what command-line switches
  2429.  
  2430.  
  2431.                                  Bingo 2.0 Reference
  2432.                                           39
  2433.  
  2434.  
  2435.  
  2436.  
  2437.           have to be set for your compiler to output errors in a usable
  2438.           message format.
  2439.  
  2440.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  2441.                !!!!!!!!                                !!!!!!!!!
  2442.                !!!!!!!! Note that linker errors do not !!!!!!!!!
  2443.                !!!!!!!! have line numbers, and so will !!!!!!!!!
  2444.                !!!!!!!!      not be recognized.        !!!!!!!!!
  2445.                !!!!!!!!                                !!!!!!!!!
  2446.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  2447.  
  2448.           However, whenever Bingo encounters a situation where there are no
  2449.           more errors, it will display a message saying so.  Further, it
  2450.           will display a portion of the last non-blank line in the error
  2451.           file on the message line with the "No more Errors" message, so
  2452.           you can verify that all went well.
  2453.  
  2454.           Undo Capabilities
  2455.           -----------------
  2456.                Bingo has several capabilities to allow you to recover from
  2457.           recent mistakes.  The 'Restore_line' function, will simply recall
  2458.           the state of the current line to what it was when you first
  2459.           arrived.  This is good only as long as you do not move from the
  2460.           line; once you leave the line, its original state is lost
  2461.           forever.
  2462.                This type of error-recovery is good for small things, but
  2463.           something more substantial was needed.  So Bingo keeps a stack of
  2464.           recently deleted items; text deleted by 'del_eol', 'del_bol', and
  2465.           'del_line' functions.  This stack is kept in reverse order; that
  2466.           is, the most recently deleted text is placed in top of the undo
  2467.           stack.
  2468.                Additionally, you have an option regarding text cut to the
  2469.           paste buffer.  Normally, when you place text into the paste
  2470.           buffer (Using the 'cut', 'copy', etc. functions), if the paste
  2471.           buffer already contains something, that text is discarded. 
  2472.           However, if you set the 'cut to stack' option on (in the General
  2473.           Config Menu, or with the 'conf_cut_stack' function), this text
  2474.           will be pushed onto the stack also.
  2475.                You can control the size of the undo stack using the
  2476.           'conf_kill_size' function (1 to 10240 lines), or through the
  2477.           config menus.  You cannot, however, turn it off.
  2478.  
  2479.           Manipulating the Undo Stack
  2480.           ---------------------------
  2481.                There are three functions available to help you deal with
  2482.           the undo stack.  'rotate_kill' will popup a list of the current
  2483.           stack's contents.  By moving the menu bar and hitting return, you
  2484.           can move the selected entry to the top of the stack.
  2485.                'unkill' and 'paste_kill' are very similar.  They take the
  2486.           top member of the stack and insert it above the current line. 
  2487.           'unkill' also removes the top member from the stack.
  2488.  
  2489.                                  Bingo 2.0 Reference
  2490.                                           40
  2491.  
  2492.  
  2493.  
  2494.  
  2495.                                   Configuring Bingo
  2496.                                   -----------------
  2497.  
  2498.                Bingo is extremely configurable.  To access the
  2499.           configuration menu, select the 'Config' option from the main
  2500.           menu, or attach keys to particular configuration functions.  The
  2501.           settings themselves are explained explicitly in the Function List
  2502.           section of this document in the Configuration portion.  
  2503.                To make the current selections permanent, select the "Write
  2504.           setting" option found on the main configuration menu.
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.                                  Bingo 2.0 Reference
  2548.                                           41
  2549.  
  2550.  
  2551.  
  2552.  
  2553.                                     Function List
  2554.                                     -------------
  2555.  
  2556.                The following section contains a listing of the functions
  2557.           supported by Bingo, grouped by functionality.  The index at the
  2558.           end of this document makes alphabetical location of these
  2559.           functions simple.
  2560.  
  2561.           General Editing
  2562.           ---------------
  2563.  
  2564.           insert_tab:         insert the number of spaces needed to move
  2565.                               the cursor to the next tab stop, based on the
  2566.                               current tabsize.
  2567.  
  2568.           carriage:           splits the current line by moving the cursor
  2569.                               to the start of the next line, taking
  2570.                               everything to the right of the cursor along
  2571.                               for the ride.  If this moves you onto the
  2572.                               bottom line of the window, the line will be
  2573.                               centered on the screen.  Depending on C mode
  2574.                               and the AutoIndent mode settings, automatic
  2575.                               indentation of some type may be performed.
  2576.  
  2577.           toggle_ins:         toggles the insert/overwrite mode.
  2578.  
  2579.           toggle_wrap         toggles the word wrap setting.
  2580.  
  2581.           toggle_cmode:       toggles the C mode setting, regardless of the
  2582.                               file name.
  2583.  
  2584.           toggle_autoindent:  toggle the autoindent setting.
  2585.  
  2586.           main_menu:          invokes the main menu.
  2587.  
  2588.           del_char:           deletes the current character at the cursor
  2589.                               position; if it was at the end of a line,
  2590.                               brings the next line up.
  2591.  
  2592.           back_space:         performs a destructive backspace, based on
  2593.                               the current deletion mode in effect.
  2594.  
  2595.           del_line:           deletes the entire current line, regardless
  2596.                               of position.
  2597.  
  2598.           del_eol:            deletes all text to the end of the line; if
  2599.                               at the end of a line, joins the lines.
  2600.  
  2601.           del_bol:            deletes all text to beginning of line, moves
  2602.                               to first column.
  2603.  
  2604.  
  2605.                                  Bingo 2.0 Reference
  2606.                                           42
  2607.  
  2608.  
  2609.  
  2610.  
  2611.           default_del:        does one of two things depending on whether
  2612.                               or not a block is marked.  If a block is
  2613.                               marked, the 'cut' function is executed.  If
  2614.                               no block is marked, the 'del_char' function
  2615.                               is executed.
  2616.  
  2617.           default_bspace:     similar to 'default_del', except that if no
  2618.                               block is marked, a 'back_space' function is
  2619.                               executed.
  2620.  
  2621.           del_word:           deletes the current word and all trailing
  2622.                               spaces.  If you are at the end of the line,
  2623.                               birngs the next line up.
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.                                  Bingo 2.0 Reference
  2664.                                           43
  2665.  
  2666.  
  2667.  
  2668.  
  2669.           File Handling
  2670.           -------------
  2671.  
  2672.           edit_file:          after asking for a filename; if the file is
  2673.                               already in the ring, it simply switches to
  2674.                               it.  If it is not in the ring, it loads the
  2675.                               file.
  2676.  
  2677.           choose_file:        pops up a list of current files in the ring,
  2678.                               and an option for a new file.  Selecting the
  2679.                               New File option performs an 'edit_file'
  2680.                               function.
  2681.  
  2682.           load_file:          after asking for a filename, it loads that
  2683.                               file from disk.  If the file is already in
  2684.                               the ring, the in-memory version is first
  2685.                               deleted from memory.
  2686.  
  2687.           rename_file:        renames current file.
  2688.  
  2689.           switch_file:        switches to a different file, performing a
  2690.                               quit on the current file first.  If you
  2691.                               escape out of the quit option, the switch
  2692.                               operation will abort.
  2693.  
  2694.           save_file:          saves the current file; does not exit.
  2695.  
  2696.           modify_save:        saves current file ONLY if it has been
  2697.                               modified.
  2698.  
  2699.           quit:               exits current file.  If the file was
  2700.                               modified, it will ask you if you wish to save
  2701.                               the file; a <return> indicates yes.
  2702.  
  2703.           abort:              exits the file, no protection, no save.
  2704.  
  2705.           file:               saves and exits current file.
  2706.  
  2707.           next_file:          moves to the next file in ring.
  2708.  
  2709.           prev_file:          moves to the previous file in the ring.
  2710.  
  2711.           quit_all:           performs a quit on each file in the ring.
  2712.  
  2713.           abort_all:          aborts all files, no questions asks.
  2714.  
  2715.           file_all:           saves and exits all files.
  2716.  
  2717.           save_all:           saves all files.
  2718.  
  2719.           modify_save_all:    saves each modified file in the ring.
  2720.  
  2721.                                  Bingo 2.0 Reference
  2722.                                           44
  2723.  
  2724.  
  2725.  
  2726.  
  2727.  
  2728.           delete_file:        asks for a filename to delete on disk.
  2729.  
  2730.           zap_file:           delete's the disk copy of the current file. 
  2731.  
  2732.           block_load:         loads a file into the current position; the
  2733.                               file is treated as though it was the line-
  2734.                               marked contents of the block buffer.
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748.  
  2749.  
  2750.  
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757.  
  2758.  
  2759.  
  2760.  
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.                                  Bingo 2.0 Reference
  2780.                                           45
  2781.  
  2782.  
  2783.  
  2784.  
  2785.           Searching
  2786.           ---------
  2787.  
  2788.           again:              repeat the last search operation.  If none
  2789.                               has yet been done, works just like search. 
  2790.                               If the last search operation done was a
  2791.                               search & replace, only the search portion is
  2792.                               done.
  2793.  
  2794.           search:             search for text.  Will ask for the target
  2795.                               text, and two modifiers:
  2796.                                    I Ignore case
  2797.                                    B Backwards
  2798.                                    C Count
  2799.                               The 'C' option simply counts the number of
  2800.                               occurrences.
  2801.                               If the text is marked, the marking will be
  2802.                               treated as linemarking, and Bingo's search
  2803.                               will not continue past the end of the marked
  2804.                               area.  This allows you to limit the searching
  2805.                               scope to a particular area.
  2806.  
  2807.           replace:            search and replace text.  Will ask for
  2808.                               target, replacement text, and three
  2809.                               modifiers:
  2810.                                    I Ignore Case
  2811.                                    B Backwards
  2812.                                    G Global Search/Replace
  2813.                               If Global is selected, Bingo will simply
  2814.                               replace all matching occurrences with the
  2815.                               replacement text.  If not, Bingo will stop at
  2816.                               each match and ask:
  2817.                                    Yes:      replace and continue.
  2818.                                    No:       don't replace, but continue
  2819.                                              search.
  2820.                                    Only:     Replace this and stop
  2821.                                    Quit:     stop, no replacement.
  2822.                                    Global:   Continue with global
  2823.                                              replacement
  2824.                               Marked text limits the range as in the search
  2825.                               function.
  2826.  
  2827.           search_macro:       will acted like the 'search' function, but
  2828.                               will ask for a key to apply when found.  It
  2829.                               will work like the replace function, but
  2830.                               instead of replacing, it will execute the
  2831.                               given key.  
  2832.  
  2833.  
  2834.  
  2835.  
  2836.  
  2837.                                  Bingo 2.0 Reference
  2838.                                           46
  2839.  
  2840.  
  2841.  
  2842.  
  2843.           Navigation
  2844.           ----------
  2845.  
  2846.           down_page:          moves down one windowful.
  2847.  
  2848.           up_page:            moves up one windowful.
  2849.  
  2850.           cursor_right:       moves right one char; wraps if necessary and
  2851.                               if bounce mode is active.
  2852.  
  2853.           cursor_left:        moves left one char, wraps if necessary and
  2854.                               if bounce mode is active.
  2855.  
  2856.           cursor_up:          moves up one line.
  2857.  
  2858.           cursor_down:        moves down one line.
  2859.  
  2860.           back_tab:           moves back to the previous tab stop.  Does
  2861.                               not change the text at all.
  2862.  
  2863.           begin_line:         goes to beginning of line.
  2864.  
  2865.           end_line:           goes to end of line.
  2866.  
  2867.           top_of_file:        jump to top of file.
  2868.  
  2869.           bot_of_file:        jump to bottom of file.
  2870.  
  2871.           next_word:          goes to beginning of next word.
  2872.  
  2873.           prev_word:          goes to beginning of previous word.
  2874.  
  2875.           top_of_screen:      jumps to the top of screen.
  2876.  
  2877.           bottom_of_screen:   jumps to the bottom of screen.
  2878.  
  2879.           top_of_block:       jumps to the top of marked block.
  2880.  
  2881.           bottom_of_block:    jumps to the bottom of marked block.
  2882.  
  2883.           jump:               jump to position.  If the number is prefaced
  2884.                               with a '+' character, Bingo will jump the
  2885.                               relative distance forward.  If the number is
  2886.                               prefaced with a '-' character, Bingo will
  2887.                               jump the relative distance backwards.
  2888.  
  2889.           center_line:        makes the current line the center line of the
  2890.                               current window, and repaint the entire
  2891.                               screen, all windows.  
  2892.  
  2893.  
  2894.  
  2895.                                  Bingo 2.0 Reference
  2896.                                           47
  2897.  
  2898.  
  2899.  
  2900.  
  2901.           indent_up:          moves to previous line with same indentation
  2902.                               scheme as current line.
  2903.  
  2904.           indent_down:        moves to next line with same indentation
  2905.                               scheme as current line.
  2906.  
  2907.           snap_to_mouse_xy:   moves the cursor to the current mouse
  2908.                               position, changing windows if necessary.
  2909.  
  2910.           place_mark:         drops a placemark, inquiring as which of the
  2911.                               10 allowed (0-9) you are concerned with. 
  2912.                               Each placemark contains the filename, the
  2913.                               line, the column.
  2914.  
  2915.           jump_mark:          jumps to the specified placemark.  If the
  2916.                               specified filename is not in the ring, Bingo
  2917.                               will go and get it.
  2918.  
  2919.           show_marks:         pops up a window showing the current
  2920.                               placemarks in effect for this editing
  2921.                               session.
  2922.  
  2923.  
  2924.  
  2925.  
  2926.  
  2927.  
  2928.  
  2929.  
  2930.  
  2931.  
  2932.  
  2933.  
  2934.  
  2935.  
  2936.  
  2937.  
  2938.  
  2939.  
  2940.  
  2941.  
  2942.  
  2943.  
  2944.  
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.                                  Bingo 2.0 Reference
  2954.                                           48
  2955.  
  2956.  
  2957.  
  2958.  
  2959.           Block Handling
  2960.           --------------
  2961.  
  2962.           line_mark:          drop a line marker.  The block will be
  2963.                               expanded or shrunk, depending on the last
  2964.                               drop made.  Line marks consider the line to
  2965.                               be the smallest markable element of text.
  2966.  
  2967.           point_mark:         drop a point marker.  The block will be
  2968.                               expanded or shrunk, depending on the last
  2969.                               drop made.  Point marks consider the
  2970.                               character to be the smallest markable element
  2971.                               of text.
  2972.  
  2973.           vertical_mark:      drop a vertical marker. Vertical, or column,
  2974.                               blocks are defined by and upper and an
  2975.                               opposing lower corner.
  2976.  
  2977.           extend_mark:        extends the current marked block, using
  2978.                               whichever marking scheme is in place.  Does
  2979.                               nothing if no block is marked.
  2980.  
  2981.           unmark:             unmark all text in current buffer.
  2982.  
  2983.           cut:                cut the marked text to the block buffer.  The
  2984.                               marked text is deleted from the file.  
  2985.  
  2986.           copy:               copy the marked text to the block buffer. 
  2987.                               The marked text is NOT deleted from the file.
  2988.  
  2989.           paste:              pastes the contents of the block buffer into
  2990.                               the text at the current position.  If the
  2991.                               contents were linemarked, the contents will
  2992.                               be pasted, as lines, above the current line. 
  2993.  
  2994.           paste_replace:      pastes the contents of the block buffer at
  2995.                               the current location, overwriting the needed
  2996.                               amount of space.  This is only valid when the
  2997.                               paste buffer is Line or Vertical marked.
  2998.  
  2999.           block_move:         moves the currently marked blocked of text to
  3000.                               the cursor position.
  3001.  
  3002.           block_copy:         copies the currently marked blocked of text
  3003.                               to the cursor position.
  3004.  
  3005.           block_delete:       deletes the currently marked block of text to
  3006.                               the block buffer; identical to cut.
  3007.  
  3008.  
  3009.  
  3010.  
  3011.                                  Bingo 2.0 Reference
  3012.                                           49
  3013.  
  3014.  
  3015.  
  3016.  
  3017.           block_save:         writes the currently marked text to a file.
  3018.  
  3019.           swap_buf_and_block: takes the currently marked portion, and swaps
  3020.                               it with the current contents of the paste
  3021.                               buffer.  The two blocks need not be of the
  3022.                               same type.
  3023.  
  3024.           report_bsize:       reports the number of lines and characters
  3025.                               (line breaks in point marked blocks count as
  3026.                               one character) the currently marked block
  3027.                               spans.
  3028.  
  3029.           name_buffer:        allows you to change the current paste
  3030.                               buffer.  <return> specifies the default
  3031.                               buffer, and 'a'-'z' specify their respective
  3032.                               buffers.
  3033.  
  3034.           buffer_info:        displays various pertinent information about
  3035.                               all the paste buffers.
  3036.  
  3037.           look_buffer:        displays the contents of the current buffer
  3038.                               in a non-editable window.
  3039.  
  3040.           cut_append:         works exactly like 'Cut', except it appends
  3041.                               the marked text to the current contents of
  3042.                               the buffer.  The text in the buffer and the
  3043.                               marked text must be of the same type.
  3044.  
  3045.           copy_append:        just as 'Cut_append', but performs a copy
  3046.                               instead.
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054.  
  3055.  
  3056.  
  3057.  
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063.  
  3064.  
  3065.  
  3066.  
  3067.  
  3068.  
  3069.                                  Bingo 2.0 Reference
  3070.                                           50
  3071.  
  3072.  
  3073.  
  3074.  
  3075.           Utilities
  3076.           ---------
  3077.  
  3078.           entab:              compresses the linemarked region specified or
  3079.                               the entire file by converting spaces to tabs.
  3080.  
  3081.           indent_tab:         compresses the leading spaces of the linemark
  3082.                               region specified or the entire file by
  3083.                               converting into the proper tabs.  Rounds to
  3084.                               the nearest tab stop, thus "normalizing" the
  3085.                               indention to tab stops.
  3086.  
  3087.           detab:              expands the linemarked region specified or
  3088.                               the entire file by converting tabs to spaces.
  3089.  
  3090.           shift_block:        shifts the specified linemarked region the
  3091.                               number of columns specified.  Positive
  3092.                               numbers indicate right-shifting, negative
  3093.                               numbers, left-shifting.  The character 't' is
  3094.                               used to signify tab widths: '-3t' shifts the
  3095.                               block left 3 tabwidths.
  3096.  
  3097.           lcase_block:        lowercases the linemarked region.
  3098.  
  3099.           ucase_block:        uppercases the linemarked region.
  3100.  
  3101.           fcase_block:        flips the case of the linemarked region.
  3102.  
  3103.           word_count:         counts the words in the linemarked region,
  3104.                               default the whole file.
  3105.  
  3106.           strip_highbit:      strips the 8th bit in the linemarked region,
  3107.                               default the whole file.
  3108.  
  3109.           sort_block:         sorts block, ascending or descending, on a
  3110.                               certain column.
  3111.  
  3112.           reform_para:        reformats a block of text to conform to the
  3113.                               right margin; a paragraph is defined as text
  3114.                               between blank lines.  The total amount of
  3115.                               text contained in a single paragraph cannot
  3116.                               be larger than 30000 characters.
  3117.  
  3118.           repeat:             repeats a keystroke n times.  If n is '*',
  3119.                               the function repeats until a search fails. 
  3120.                               The function halts repetition on a search
  3121.                               failure.
  3122.  
  3123.  
  3124.  
  3125.  
  3126.  
  3127.                                  Bingo 2.0 Reference
  3128.                                           51
  3129.  
  3130.  
  3131.  
  3132.  
  3133.  
  3134.           dup_line:           duplicates the current line and increments
  3135.                               cursor to the next line.
  3136.  
  3137.           align:              slides the linemarked region left or right to
  3138.                               match indentation with the line immediately
  3139.                               above the first marked line.  If not lines
  3140.                               are marked, the current line is aligned.
  3141.  
  3142.           match_delim:        finds the proper match for a delimiter.
  3143.  
  3144.           time_stamp:         inserts the current date and time into the
  3145.                               text.
  3146.  
  3147.           fill_block:         fills a vertically marked block with a
  3148.                               specified character.
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.  
  3182.  
  3183.  
  3184.  
  3185.                                  Bingo 2.0 Reference
  3186.                                           52
  3187.  
  3188.  
  3189.  
  3190.  
  3191.           Extra Operations
  3192.           ----------------
  3193.  
  3194.           help:                    views the predefined help file
  3195.                                    BINGO.HLP.  This file must be located in
  3196.                                    the same directory as BINGO.EXE.
  3197.  
  3198.           info:                    pops up an info window, providing
  3199.                                    information on current files in the
  3200.                                    ring.
  3201.  
  3202.           pick_exec:               this allows you to pick a function
  3203.                                    descriptor and have it executed.
  3204.  
  3205.           quit_and_save_status:    this function saves the current status
  3206.                                    of Bingo as well as the current files,
  3207.                                    so that the next time Bingo is invoked,
  3208.                                    you will be given the option to pick up
  3209.                                    where you left off.
  3210.  
  3211.           global:                  this allows you to execute any keystroke
  3212.                                    globally, throughout all the files in
  3213.                                    the ring.  
  3214.  
  3215.           query_quote:             inserts an integer or sequence of
  3216.                                    integers as its raw ASCII character. 
  3217.                                    The decimal values must be comma
  3218.                                    delimited.
  3219.  
  3220.           ascii_table:             pops up a display of all Ascii
  3221.                                    characters.  By hitting Return on a
  3222.                                    character, you add it to the string. 
  3223.                                    When you hit Escape, the string is
  3224.                                    inserted into the text. 
  3225.  
  3226.           toggle_display:          toggles the display size between 25
  3227.                                    lines and 43/50 lines.  Will in all
  3228.                                    likelihood screw up the cursor shape,
  3229.                                    since the scan line counts will change.
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.  
  3243.                                  Bingo 2.0 Reference
  3244.                                           53
  3245.  
  3246.  
  3247.  
  3248.  
  3249.           System Operations
  3250.           -----------------
  3251.  
  3252.           chdir:              change the currently logged directory.
  3253.  
  3254.           exec_command:       execute a DOS command, while leaving Bingo
  3255.                               completely resident in memory.
  3256.  
  3257.           shell:              shell to DOS, leaving Bingo completely
  3258.                               resident in memory.
  3259.  
  3260.           swap_execute:       execute a DOS command while swapping Bingo
  3261.                               out.  This will cause Bingo to save copies of
  3262.                               the buffers as well as state information, and
  3263.                               leave behind an ~10k kernel.
  3264.  
  3265.           swap_shell:         shell to DOS while swapping as above.
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285.  
  3286.  
  3287.  
  3288.  
  3289.  
  3290.  
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.                                  Bingo 2.0 Reference
  3302.                                           54
  3303.  
  3304.  
  3305.  
  3306.  
  3307.           Macros
  3308.           ------
  3309.  
  3310.           define_scrap:       start scrap macro definition.  
  3311.  
  3312.           onekey_def:         start single-key macro definition.
  3313.  
  3314.           twokey_def:         start two-key macro definition.
  3315.  
  3316.           scrap:              execute the scrap macro.
  3317.  
  3318.           single_key_save:    save a single macro to a file for later
  3319.                               recall.  Saves the key it is attached to
  3320.                               also.
  3321.  
  3322.           single_key_load:    load a single macro from a file.  Overwrites
  3323.                               the current definition for the key, if it has
  3324.                               one.
  3325.  
  3326.           key_set_save:       saves entire keyset, including macros, but
  3327.                               not the scrap.
  3328.  
  3329.           key_set_load:       load entire keyset.
  3330.  
  3331.           run_macro_file:     runs a macro from a file saved with
  3332.                               single_key_save.
  3333.  
  3334.           undefine_key:       undefines a key.
  3335.  
  3336.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3337.                !!!!!                                         !!!!!
  3338.                !!!!! All of these functions will end a macro !!!!!
  3339.                !!!!!        being currently defined          !!!!!
  3340.                !!!!!                                         !!!!!
  3341.                !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352.  
  3353.  
  3354.  
  3355.  
  3356.  
  3357.  
  3358.  
  3359.                                  Bingo 2.0 Reference
  3360.                                           55
  3361.  
  3362.  
  3363.  
  3364.  
  3365.           Windows
  3366.           -------
  3367.  
  3368.           window_edit:        this function ask for a filename, then splits
  3369.                               the window and essentially performs and
  3370.                               edit_file function for the requested
  3371.                               filename.
  3372.  
  3373.           window_load:        works like window_edit, except it forces a
  3374.                               reload of the named file.
  3375.  
  3376.           window_split:       this simply splits the current window in two
  3377.                               and uses the current file for both.
  3378.  
  3379.           window_vertical:    splits the current window vertically. 
  3380.                               Windows can only be split so once.
  3381.  
  3382.           window_find:        this first attempts to move to the named file
  3383.                               among the currently open windows.  If the
  3384.                               file is not currently being displayed in a
  3385.                               window, an error message is displayed.
  3386.  
  3387.           window_close:       closes the current window and expands the
  3388.                               above window to use its space.
  3389.  
  3390.           window_zoom:        toggles the display between zoomed mode. 
  3391.                               When the display is zoomed, the current
  3392.                               window takes up the entire display, but Bingo
  3393.                               'remembers' the rest of the windows and will
  3394.                               restore them when zoom mode is toggled again.
  3395.  
  3396.           window_one:         this function makes the current window the
  3397.                               only window, wiping out all other windows.
  3398.  
  3399.           window_next:        this moves to the next window down, or wraps
  3400.                               to the top window if necessary.
  3401.  
  3402.           window_previous:    this moves to the next window up, or wraps to
  3403.                               the bottom if necessary.
  3404.  
  3405.           window_top:         jumps to the topmost, leftmost window.
  3406.  
  3407.           window_bottom:      jumps to the bottom-most, rightmost window.
  3408.  
  3409.           window_resize:      this allows you to resize the current window
  3410.                               (and its left or right sibling, if it exists)
  3411.                               and the window below (and *its* left or right
  3412.                               sibling, if it exists) by 'rubberbanding' the
  3413.                               current status line up and down.
  3414.  
  3415.  
  3416.  
  3417.                                  Bingo 2.0 Reference
  3418.                                           56
  3419.  
  3420.  
  3421.  
  3422.  
  3423.           Printing
  3424.           --------
  3425.  
  3426.           print_file:         print the current file, using the current
  3427.                               printer settings, to the current destination.
  3428.  
  3429.           print_block:        print a linemarked block of text, as above.
  3430.  
  3431.           send_lf:            send a line feed character to the
  3432.                               destination.
  3433.  
  3434.           send_ff:            send a formfeed character to the destination
  3435.  
  3436.           send_sequence:      send a sequence of character values to the
  3437.                               printer; e.g.
  3438.                                    12,12,12,12,12
  3439.                               sends a series of 5 ASCII 12's (decimal) to
  3440.                               the destination
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463.  
  3464.  
  3465.  
  3466.  
  3467.  
  3468.  
  3469.  
  3470.  
  3471.  
  3472.  
  3473.  
  3474.  
  3475.                                  Bingo 2.0 Reference
  3476.                                           57
  3477.  
  3478.  
  3479.  
  3480.  
  3481.           Error Parsing and Undo
  3482.           ----------------------
  3483.  
  3484.           setup_err_parse:    this function will prompt you for a filename. 
  3485.                               Bingo will from then on use the named file as
  3486.                               the error file.  This must be called before
  3487.                               next_error, prev_error, or last_error are
  3488.                               called.
  3489.  
  3490.           next_error:         moves, within the current window, to the next
  3491.                               error as found in the current error file.  If
  3492.                               no more errors can be found, Bingo will say
  3493.                               so, and display the last non-blank line in
  3494.                               the error file.  Otherwise, Bingo will edit
  3495.                               the appropriate file into the current window,
  3496.                               as well as highlighting the line in the error
  3497.                               file being referenced.
  3498.  
  3499.           prev_error:         same as error except it moves backward
  3500.                               through the error file.
  3501.  
  3502.           last_error:         redisplays the last error message, if there
  3503.                               was one.
  3504.  
  3505.           rotate_kill:        pops up the current kill stack and allows you
  3506.                               to arbitrarily move a line of text to the top
  3507.                               of the stack.
  3508.  
  3509.           unkill:             inserts the top member of the stack above the
  3510.                               current line.  Removes the top member from
  3511.                               the stack.
  3512.  
  3513.           paste_kill:         inserts the top member of the stack above the
  3514.                               current line.  Leaves the stack alone.
  3515.  
  3516.           restore_line:       restores the current line to its former form.
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.                                  Bingo 2.0 Reference
  3534.                                           58
  3535.  
  3536.  
  3537.  
  3538.  
  3539.           Configuration
  3540.           -------------
  3541.  
  3542.           save_settings:      saves the current config settings to the
  3543.                               image of BINGO.EXE on disk.
  3544.  
  3545.           conf_color:         configure the color settings.  You select the
  3546.                               color you are interested in by pressing the
  3547.                               appropriate color.  Then, by watching the
  3548.                               bottom line on the screen and pressing the up
  3549.                               and down arrow keys, you select the color you
  3550.                               want.  Pressing return will select the color. 
  3551.                               For the overscan (border) attribute, only the
  3552.                               background attribute matters.
  3553.  
  3554.           conf_iobufsize:     configure the input/output buffer size.  This
  3555.                               is a static buffer allocated at startup,
  3556.                               which is also used to save screen images when
  3557.                               popping up menus and dialogue boxes.
  3558.  
  3559.           conf_lfs:           alter the lfs-only setting.  If on, this
  3560.                               setting has Bingo write files with lines
  3561.                               separated by LF's only, in the UNIX fashion. 
  3562.                               Otherwise, Bingo uses CR-LF pairs to delimit
  3563.                               lines.
  3564.  
  3565.           conf_backups:       change backup generation.  If on, Bingo will
  3566.                               automatically create backup files.
  3567.  
  3568.           conf_eof:           alter whether Bingo writes a EOF character at
  3569.                               the end of files (^Z).
  3570.  
  3571.           conf_tabexpand:     configure whether Bingo automatically expands
  3572.                               tabs to spaces when reading/writing files. 
  3573.                               Not recommended, as it slows file IO down
  3574.                               quite a bit.
  3575.  
  3576.           conf_stripping:     configure whether Bingo strips the high bit
  3577.                               of characters when reading.  Only really
  3578.                               useful when reading Wordstar files.
  3579.  
  3580.           conf_rmargin:       set the right margin.  Affects paragraph
  3581.                               reformatting and word wrap.
  3582.  
  3583.           conf_autoindent:    set whether Bingo uses autoindent mode. 
  3584.                               Affects paragraph reformatting and word wrap.
  3585.  
  3586.           conf_wordwrap:      set the word wrap mode.
  3587.  
  3588.           conf_insert:        whether Bingo is in insert/overwrite mode.
  3589.  
  3590.  
  3591.                                  Bingo 2.0 Reference
  3592.                                           59
  3593.  
  3594.  
  3595.  
  3596.  
  3597.           conf_tabsize:       set the tabsize.
  3598.  
  3599.           conf_backspace:     configure the backspace mode:
  3600.                                    1. Delete single chars
  3601.                                    2. Delete spaces back to tab setting
  3602.                                    3. Delete spaces to left margin
  3603.  
  3604.           conf_macro_death:   set whether a keystroke interrupts macros. 
  3605.                               If on, this will slow things down a bit, but
  3606.                               can prevent runaway macros.
  3607.  
  3608.           conf_cmode:         configure whether Bingo uses C Mode on *.c
  3609.                               and *.h files.
  3610.  
  3611.  
  3612.  
  3613.  
  3614.  
  3615.  
  3616.  
  3617.  
  3618.  
  3619.  
  3620.  
  3621.  
  3622.  
  3623.  
  3624.  
  3625.  
  3626.  
  3627.  
  3628.  
  3629.  
  3630.  
  3631.  
  3632.  
  3633.  
  3634.  
  3635.  
  3636.  
  3637.  
  3638.  
  3639.  
  3640.  
  3641.  
  3642.  
  3643.  
  3644.  
  3645.  
  3646.  
  3647.  
  3648.  
  3649.                                  Bingo 2.0 Reference
  3650.                                           60
  3651.  
  3652.  
  3653.  
  3654.  
  3655.           conf_video_mode:    allows you to choose from between three
  3656.                               screen handling options:
  3657.                               - autodetect with retrace checking
  3658.                               - autodetect with no retrace checking
  3659.                               - 43 or 50 line mode, if supported
  3660.                               Retrace checking will only be in effect if
  3661.                               there are only 25 lines to be displayed. 
  3662.                               Note:  this only changes the default
  3663.                               *startup* mode -- it changes nothing except
  3664.                               possibly the retrace mode while Bingo
  3665.                               continues to run.  To make the change take
  3666.                               effect, you will have to quit Bingo
  3667.                               completely and restart it.
  3668.  
  3669.           conf_cursor:        set non-blinking block cursor.  Good for
  3670.                               laptop users.
  3671.  
  3672.           conf_prn:           set the printer destination, between the
  3673.                               default serial port, the default parallel
  3674.                               port, or a file.
  3675.  
  3676.           conf_tmarg:         set the top margin, in terms of number of
  3677.                               lines.
  3678.  
  3679.           conf_bmarg:         set the bottom margin, in terms of number of
  3680.                               lines.
  3681.  
  3682.           conf_lmarg:         set the left margin which will be used when
  3683.                               printing, in terms of spaces.
  3684.  
  3685.           conf_lines_per:     set the lines per page, counting the top
  3686.                               margin.
  3687.  
  3688.           conf_null:          this sets the value used to replace ASCII 0's
  3689.                               with in files for file IO.  ASCII 0's cannot
  3690.                               directly be entered in Bingo due to the
  3691.                               storage scheme employed.  Therefore, you can
  3692.                               define an ASCII value from 128-255 to be used
  3693.                               in conversion.  On file input, any 0's found
  3694.                               will be replaced with this value.  On output,
  3695.                               any characters with this replacement value
  3696.                               will be converted to 0's.  
  3697.  
  3698.  
  3699.  
  3700.  
  3701.  
  3702.  
  3703.  
  3704.  
  3705.  
  3706.  
  3707.                                  Bingo 2.0 Reference
  3708.                                           61
  3709.  
  3710.  
  3711.  
  3712.  
  3713.           conf_ctrl_display:  Normally, Bingo displays any control
  3714.                               characters in a file by simply displaying its
  3715.                               character picture as defined by the video
  3716.                               card.  If the Ctrl_display is toggled on,
  3717.                               however, any control characters which have
  3718.                               ctrl-<alpha> equivalents (such as ASCII
  3719.                               05=control-E) will be displayed as the
  3720.                               character equivalent, and then highlighted as
  3721.                               if they were marked.  Characters which have
  3722.                               an ASCII value greater than 127 will simply
  3723.                               be highlighted.  This is only allowed when
  3724.                               retrace checking is disabled.
  3725.  
  3726.           conf_kill_size:     alters the size of the kill buffer.
  3727.  
  3728.           conf_cut_stack:     allows you to choose whether text about to be
  3729.                               discarded from the paste buffer should be
  3730.                               placed on the stack.  If this is on, this
  3731.                               will slow block operations down a bit, but it
  3732.                               is a nice safety feature.
  3733.  
  3734.           conf_auto_cut:      allows you to toggle how the 'cut' & 'copy'
  3735.                               functions respond when no block has been
  3736.                               marked.  If auto cut is active, these
  3737.                               functions will cut (or copy) the current
  3738.                               line.  If auto cut is not active, the current
  3739.                               line will be Linemarked.
  3740.  
  3741.           conf_smart_tabs:    allows you to specify whether or not "Smart"
  3742.                               tabs are active.  Smart tabs cause the
  3743.                               'insert_tab' function to tab over to the same
  3744.                               column as the next nonspace character on the
  3745.                               line previous.  
  3746.  
  3747.           conf_matching:      configures matching mode.  If matching mode
  3748.                               is active, entering a '[{<' character will
  3749.                               cause its matching close member to be entered
  3750.                               automatically.
  3751.  
  3752.           conf_trail:         allows you to configure whether or not Bingo
  3753.                               strips trailing spaces.
  3754.  
  3755.           conf_bounce:        allows you what cursor movement paradigm
  3756.                               Bingo uses.  If Bounce mode is active, Bingo
  3757.                               views the entire document as one long string
  3758.                               of characters.  Thus, you cannot move off of
  3759.                               exiting text.  Further, the cursor will
  3760.                               automatically wrap at the end of lines.  If
  3761.                               Bounce mode is turned off, cursor movement is
  3762.                               by the more traditional method, where you can
  3763.                               move any where (horizontally) you wish.
  3764.  
  3765.                                  Bingo 2.0 Reference
  3766.                                           62
  3767.  
  3768.  
  3769.  
  3770.  
  3771.           conf_key_bios:      this governs whether or not Bingo will use
  3772.                               the Extended Keyboard Bios if it is found. 
  3773.                               On some machines, Bingo may identify it
  3774.                               incorrectly, or there may be compatibility
  3775.                               problems.  This function allows you to tell
  3776.                               Bingo to disregard the extended Bios, even if
  3777.                               it is found.  If this is on, the two sets of
  3778.                               arrow keys, for example, will be recognized
  3779.                               as different.  They will therefore have to be
  3780.                               defined separately in your keyboard config
  3781.                               file.
  3782.  
  3783.           conf_erronly:       allows you to tell Bingo to further restrict
  3784.                               valid error lines to those containing the
  3785.                               word 'error' (any case).  
  3786.  
  3787.           conf_mouse:         controls whether or not Bingo uses a Mouse,
  3788.                               if it finds one.  Trust me, you'll like it!!!
  3789.  
  3790.  
  3791.  
  3792.  
  3793.  
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800.  
  3801.  
  3802.  
  3803.  
  3804.  
  3805.  
  3806.  
  3807.  
  3808.  
  3809.  
  3810.  
  3811.  
  3812.  
  3813.  
  3814.  
  3815.  
  3816.  
  3817.  
  3818.  
  3819.  
  3820.  
  3821.  
  3822.  
  3823.                                  Bingo 2.0 Reference
  3824.                                           63
  3825.  
  3826.  
  3827.  
  3828.  
  3829.                                   License Agreement
  3830.                                   -----------------
  3831.  
  3832.                This section tells you is how to become a registered user
  3833.           once you decide that you like the program and want to use it on a
  3834.           regular basis.
  3835.  
  3836.                Bingo is distributed under the shareware marketing concept;
  3837.           it is not free software and it has not been released to the
  3838.           public domain. The documentation, executable images, and all
  3839.           other files distributed with Bingo are copyrighted.
  3840.  
  3841.                Shareware is a way of distributing computer software that
  3842.           allows you to try out a program before you purchase it. Programs
  3843.           distributed as shareware typically give you some period of time
  3844.           to use the program and evaluate its usefulness to you. If the
  3845.           program doesn't meet your needs, you're under no obligation to
  3846.           pay for it. If you do find the program useful and wish to
  3847.           continue using it on a regular basis, the shareware program's
  3848.           author usually requests that you pay for the program by sending
  3849.           him or her a completed registration form and payment. This is the
  3850.           approach I have taken in making Bingo available to the public.
  3851.  
  3852.                If you find Bingo to be a useful addition to your software
  3853.           library, you're requested to become a registered user by
  3854.           completing the enclosed registration form and returning it along
  3855.           with the indicated license/registration fee. I hope that you will
  3856.           agree that the $30.00 license fee is a small price to pay for the
  3857.           continued use of the program. It requires a large investment to
  3858.           develop, market, and support a product of this complexity. Your
  3859.           support in the form of a license/registration fee will continue
  3860.           to make good software available at low prices.
  3861.  
  3862.                Quantity discounts are available to business, government,
  3863.           and other organizations that wish to use Bingo on multiple
  3864.           computer systems. Bingo is also available at very special rates
  3865.           to organizations who wish to use it in promotional campaigns.
  3866.           Write the author for information on using the program this way.
  3867.  
  3868.                You are granted a limited license to use and examine Bingo
  3869.           on a trial basis to determine if Bingo is suitable for your
  3870.           needs. If you find Bingo useful and continue to use it on a
  3871.           regular basis, you should complete and return the registration
  3872.           form along with the indicated license/registration fee.
  3873.  
  3874.  
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.                                  Bingo 2.0 Reference
  3882.                                           64
  3883.  
  3884.  
  3885.  
  3886.  
  3887.                You are encouraged to make copies of Bingo for the trial use
  3888.           of other individuals and organizations, subject to the following
  3889.           restrictions:
  3890.  
  3891.                1) All Bingo distribution files must be copied in unmodified
  3892.                form.
  3893.                2) You may not include any other files with the distributed
  3894.                copy.
  3895.                3) You may not request compensation of any sort for
  3896.                providing the copy. This restriction does not apply to
  3897.                computer clubs and user groups who distribute software to
  3898.                their members for a nominal fee.
  3899.  
  3900.                You may not distribute Bingo with any other product or
  3901.           service without written permission of the author.
  3902.  
  3903.                Bingo may be included on electronic bulletin board systems
  3904.           for downloading by users of the bulletin board provided the above
  3905.           restrictions are met.
  3906.  
  3907.                Bingo and all accompanying materials are provided "as is"
  3908.           without warranty of any kind. The entire risk of using Bingo is
  3909.           assumed by you.
  3910.  
  3911.                The author, Christopher R. S. Schanck, makes no warranty of
  3912.           any kind, expressed or implied, including but not limited to any
  3913.           warranties of merchantability and fitness for a particular
  3914.           purpose.
  3915.  
  3916.                In no event will the author, Christopher R. S. Schanck, be
  3917.           liable for any damages whatsoever arising out of your use or
  3918.           inability to use the program.
  3919.  
  3920.                If you use Bingo on a regular basis, you should complete the
  3921.           registration form at the end of this document and return it along
  3922.           with the indicated license/registration fee. Registration gives
  3923.           you the right to use the software as documented in the license.
  3924.  
  3925.                The registration fee of $30.00 establishes you as a
  3926.           registered user of Bingo. You will receive the next version of
  3927.           Bingo free.  After that, you will be notified of each subsequent
  3928.           version, and they will be available for a five (5) dollar fee.
  3929.  
  3930.                When you submit your registration fee, however, you can
  3931.           request that the author mail you a copy of the current version of
  3932.           Bingo and accompanying documentation on disk (3.5" or 5.25") for
  3933.           free. This offer is made for mailing addresses in the continental
  3934.           United States only.
  3935.  
  3936.  
  3937.  
  3938.  
  3939.                                  Bingo 2.0 Reference
  3940.                                           65
  3941.  
  3942.  
  3943.  
  3944.  
  3945.                             Registration Form - Bingo 2.0
  3946.                             -----------------------------
  3947.  
  3948.           Remit to:            Christopher R.S. Schanck
  3949.                                  2718 Nottingham Road
  3950.                                   Bethlehem PA 18017
  3951.  
  3952.                                  Phone: 215-691-1070
  3953.  
  3954.                                 Bingo 2.0   June 1990
  3955.  
  3956.           Bingo Registration ................ @ $ 30.00 each  $ _____
  3957.  
  3958.                   Disk size, circle one: (   3.5"   /   5.25"   )
  3959.  
  3960.           Bingo printed Documentation ....... @ $ 15.00 each  $ _____
  3961.  
  3962.                                                     Subtotal  $ _____
  3963.  
  3964.           Overseas shipping ................. @ $ 10.00/item  $ _____
  3965.  
  3966.                                             Total (U.S.Funds) $ _____
  3967.               
  3968.           Name: _____________________________________________________
  3969.  
  3970.           Company: __________________________________________________
  3971.  
  3972.           Address: __________________________________________________
  3973.  
  3974.           ___________________________________________________________
  3975.  
  3976.           ___________________________________________________________
  3977.  
  3978.           Day Phone: _________________________ 
  3979.  
  3980.           Eve: _______________________________
  3981.  
  3982.  
  3983.                        Prices subject to change without notice.
  3984.  
  3985.  
  3986.  
  3987.  
  3988.  
  3989.  
  3990.  
  3991.  
  3992.  
  3993.  
  3994.  
  3995.  
  3996.  
  3997.                                  Bingo 2.0 Reference
  3998.                                           66
  3999.  
  4000.  
  4001.  
  4002.  
  4003.                             Registration Form - Continued
  4004.  
  4005.           I acquired Bingo 2.0 from
  4006.  
  4007.           [ ] - Friend                  [ ] - Computer Club
  4008.           [ ] - Electronic BBS          [ ] - Other - Please Specify
  4009.                                         _____________________________
  4010.  
  4011.           I would also appreciate any input you would care to give
  4012.           concerning Bingo. If you have any ideas or comments that would
  4013.           make Bingo a better program, then please let me know.
  4014.  
  4015.  
  4016.  
  4017.  
  4018.  
  4019.  
  4020.  
  4021.  
  4022.  
  4023.  
  4024.  
  4025.  
  4026.  
  4027.  
  4028.  
  4029.  
  4030.  
  4031.  
  4032.  
  4033.  
  4034.  
  4035.  
  4036.  
  4037.  
  4038.  
  4039.  
  4040.  
  4041.  
  4042.  
  4043.  
  4044.  
  4045.  
  4046.  
  4047.  
  4048.  
  4049.  
  4050.  
  4051.  
  4052.  
  4053.  
  4054.  
  4055.                                  Bingo 2.0 Reference
  4056.                                           67
  4057.  
  4058.  
  4059.  
  4060.  
  4061.                                       The Author
  4062.                                       ----------
  4063.  
  4064.                I just finished my M.S. in Computer Science, and hope to
  4065.           join the "Real World" soon.  I was born in a steel town in
  4066.           Eastern Pennsylvania, and attended The Pennsylvania State
  4067.           University as an undergraduate, graduating in May of 1988. I hold
  4068.           a first-degree Black Belt in Tae Kwon Do, and I am an avid reader
  4069.           of science-fiction. 
  4070.  
  4071.  
  4072.  
  4073.  
  4074.  
  4075.  
  4076.  
  4077.  
  4078.  
  4079.  
  4080.  
  4081.  
  4082.  
  4083.  
  4084.  
  4085.  
  4086.  
  4087.  
  4088.  
  4089.  
  4090.  
  4091.  
  4092.  
  4093.  
  4094.  
  4095.  
  4096.  
  4097.  
  4098.  
  4099.  
  4100.  
  4101.  
  4102.  
  4103.  
  4104.  
  4105.  
  4106.  
  4107.  
  4108.  
  4109.  
  4110.  
  4111.  
  4112.  
  4113.                                  Bingo 2.0 Reference
  4114.                                           68
  4115.  
  4116.  
  4117.  
  4118.  
  4119.                                    Acknowledgements
  4120.                                    ----------------
  4121.  
  4122.                There are many I must acknowledge for the inspiration for
  4123.           writing this program: family, friends, colleagues. In addition, I
  4124.           want to thank Borland for their excellent TurboC compiler, which
  4125.           I used to write Bingo; IBM for making my beloved baby, lo those
  4126.           many years ago; and all the other folks who wrote software I used
  4127.           to create Bingo.  Thanks to all my computer science professors,
  4128.           who instilled the knowledge to write such an application in me,
  4129.           often against my will.  I have to acknowledge another shareware
  4130.           program I market, Navstar.  Without Navstar to work on, I would
  4131.           not have finished Bingo so quickly (or had so much opportunity to
  4132.           use it!).  I also thank the members of the Columbus Computer
  4133.           Society (CCS), particularly the members of the Programmer's SIG,
  4134.           several of whom served as Beta test people, putting their
  4135.           programs In Harm's Way as they tested features.
  4136.                And mucho thanks to my premier beta-tester, Bob Boyken, who
  4137.           was also the first registrant of version 1.1a.  Bob provided me
  4138.           with much needed time, effort, and ideas, not to mention a help
  4139.           file.  His efforts, both in using Bingo regularly, and in testing
  4140.           things for me on particular hardware combinations, was nothing
  4141.           short of awesome.
  4142.  
  4143.  
  4144.  
  4145.  
  4146.  
  4147.  
  4148.  
  4149.  
  4150.  
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  
  4156.  
  4157.  
  4158.  
  4159.  
  4160.  
  4161.  
  4162.  
  4163.  
  4164.  
  4165.  
  4166.  
  4167.  
  4168.  
  4169.  
  4170.  
  4171.                                  Bingo 2.0 Reference
  4172.                                           69
  4173.  
  4174.  
  4175.  
  4176.  
  4177.                                   Appendix A: Index
  4178.                                   -----------------
  4179.  
  4180.           abort . . . . . . . . . . . . . . . . . . . . . 9, 10, 24, 32, 44
  4181.           abort_all . . . . . . . . . . . . . . . . . . . . . . . .  24, 44
  4182.           again . . . . . . . . . . . . . 8, 13, 18, 23, 33, 35, 36, 46, 56
  4183.           align . . . . . . . . . . . . . . . . . . . . . . . . . 2, 30, 52
  4184.           ascii_table . . . . . . . . . . . . . . . . . . . . .  22, 32, 53
  4185.           back_space  . . . . . . . . . . . . . . . . . . . . . . .  42, 43
  4186.           back_tab  . . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4187.           begin_line  . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4188.           block_copy  . . . . . . . . . . . . . . . . . . . . . . .  29, 49
  4189.           block_delete  . . . . . . . . . . . . . . . . . . . . . .  29, 49
  4190.           block_load  . . . . . . . . . . . . . . . . . . . . . . . . .  45
  4191.           block_move  . . . . . . . . . . . . . . . . . . . . . . .  29, 49
  4192.           block_save  . . . . . . . . . . . . . . . . . . . . . . . . .  50
  4193.           bot_of_file . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4194.           bottom_of_block . . . . . . . . . . . . . . . . . . . . . . .  47
  4195.           bottom_of_screen  . . . . . . . . . . . . . . . . . . . . . .  47
  4196.           buffer_info . . . . . . . . . . . . . . . . . . . . . . .  29, 50
  4197.           carriage  . . . . . . . . . . . . . . . . . . . . . . . . . .  42
  4198.           center_line . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4199.           chdir . . . . . . . . . . . . . . . . . . . . . . . . . .  33, 54
  4200.           choose_file . . . . . . . . . . . . . . . . . . . . . . .  24, 44
  4201.           conf_auto_cut . . . . . . . . . . . . . . . . . . . . . . . .  62
  4202.           conf_autoindent . . . . . . . . . . . . . . . . . . . . . . .  59
  4203.           conf_backspace  . . . . . . . . . . . . . . . . . . . . . . .  60
  4204.           conf_backups  . . . . . . . . . . . . . . . . . . . . . . . .  59
  4205.           conf_bmarg  . . . . . . . . . . . . . . . . . . . . . . . . .  61
  4206.           conf_bounce . . . . . . . . . . . . . . . . . . . . . . . . .  62
  4207.           conf_cmode  . . . . . . . . . . . . . . . . . . . . . . . . .  60
  4208.           conf_color  . . . . . . . . . . . . . . . . . . . . . . . . .  59
  4209.           conf_ctrl_display . . . . . . . . . . . . . . . . . . . . . .  62
  4210.           conf_cursor . . . . . . . . . . . . . . . . . . . . . . . . .  61
  4211.           conf_cut_stack  . . . . . . . . . . . . . . . . . . . . .  40, 62
  4212.           conf_eof  . . . . . . . . . . . . . . . . . . . . . . . . . .  59
  4213.           conf_erronly  . . . . . . . . . . . . . . . . . . . . . . . .  63
  4214.           conf_insert . . . . . . . . . . . . . . . . . . . . . . . . .  59
  4215.           conf_iobufsize  . . . . . . . . . . . . . . . . . . . . . . .  59
  4216.           conf_key_bios . . . . . . . . . . . . . . . . . . . . . . . .  63
  4217.           conf_kill_size  . . . . . . . . . . . . . . . . . . . . .  40, 62
  4218.           conf_lfs  . . . . . . . . . . . . . . . . . . . . . . . . . .  59
  4219.           conf_lines_per  . . . . . . . . . . . . . . . . . . . . . . .  61
  4220.           conf_lmarg  . . . . . . . . . . . . . . . . . . . . . . . . .  61
  4221.           conf_macro_death  . . . . . . . . . . . . . . . . . . . . . .  60
  4222.           conf_matching . . . . . . . . . . . . . . . . . . . . . . . .  62
  4223.           conf_mouse  . . . . . . . . . . . . . . . . . . . . . . . . .  63
  4224.           conf_null . . . . . . . . . . . . . . . . . . . . . . . . . .  61
  4225.           conf_prn  . . . . . . . . . . . . . . . . . . . . . . . . . .  61
  4226.           conf_rmargin  . . . . . . . . . . . . . . . . . . . . . . . .  59
  4227.           conf_smart_tabs . . . . . . . . . . . . . . . . . . . . . . .  62
  4228.  
  4229.                                  Bingo 2.0 Reference
  4230.                                           70
  4231.  
  4232.  
  4233.  
  4234.  
  4235.           conf_stripping  . . . . . . . . . . . . . . . . . . . . . . .  59
  4236.           conf_tabexpand  . . . . . . . . . . . . . . . . . . . . . . .  59
  4237.           conf_tabsize  . . . . . . . . . . . . . . . . . . . . . . . .  60
  4238.           conf_tmarg  . . . . . . . . . . . . . . . . . . . . . . . . .  61
  4239.           conf_trail  . . . . . . . . . . . . . . . . . . . . . . . . .  62
  4240.           conf_video_mode . . . . . . . . . . . . . . . . . . . . . . .  61
  4241.           conf_wordwrap . . . . . . . . . . . . . . . . . . . . . . . .  59
  4242.           copy  . . . . . . . . .  3, 5, 25, 28, 29, 40, 45, 49, 50, 62, 65
  4243.           copy_append . . . . . . . . . . . . . . . . . . . . . . . . .  50
  4244.           cur_file  . . . . . . . . . . . . . . . . . . . . . . . . . .  16
  4245.           cursor_down . . . . . . . . . . . . . . . . . . . . . . .  19, 47
  4246.           cursor_left . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4247.           cursor_right  . . . . . . . . . . . . . . . . . . . . . . . .  47
  4248.           cursor_up . . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4249.           cut . . . . . . . . . . . . . . . . .  28, 29, 40, 43, 49, 50, 62
  4250.           cut_append  . . . . . . . . . . . . . . . . . . . . . . . . .  50
  4251.           default_bspace  . . . . . . . . . . . . . . . . . . . . . . .  43
  4252.           default_del . . . . . . . . . . . . . . . . . . . . . . . . .  43
  4253.           define_scrap  . . . . . . . . . . . . . . . . . . . . . . . .  55
  4254.           del_bol . . . . . . . . . . . . . . . . . . . . . . .  23, 40, 42
  4255.           del_char  . . . . . . . . . . . . . . . . . . . . . . . .  42, 43
  4256.           del_eol . . . . . . . . . . . . . . . . . . . . . . .  23, 40, 42
  4257.           del_line  . . . . . . . . . . . . . . . . . . . . . .  23, 40, 42
  4258.           del_word  . . . . . . . . . . . . . . . . . . . . . . . .  23, 43
  4259.           delete_file . . . . . . . . . . . . . . . . . . . . . . .  25, 45
  4260.           detab . . . . . . . . . . . . . . . . . . . . . . . . . 1, 30, 51
  4261.           down_page . . . . . . . . . . . . . . . . . . . . . . . .  19, 47
  4262.           dup_line  . . . . . . . . . . . . . . . . . . . . . . . . . .  52
  4263.           edit_file . . . . . . . . . . . . . . . .  24, 25, 37, 39, 44, 56
  4264.           end_line  . . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4265.           entab . . . . . . . . . . . . . . . . . . . . . . . . . 1, 30, 51
  4266.           exec_command  . . . . . . . . . . . . . . . . . . . . . .  33, 54
  4267.           extend_mark . . . . . . . . . . . . . . . . . . . . . . .  28, 49
  4268.           fcase_block . . . . . . . . . . . . . . . . . . . . . . . . .  51
  4269.           file  . 1, 2, 5, 6, 9, 11-13, 15-18, 20, 24-28, 30-32, 36-40, 42,
  4270.                                     44, 45, 47, 49-51, 53, 55-59, 61-63, 69
  4271.           file_all  . . . . . . . . . . . . . . . . . . . . . . . . . .  44
  4272.           fill_block  . . . . . . . . . . . . . . . . . . . . . . . . .  52
  4273.           global  . . . . . . . . . . . . . . . . . . . . .  26, 32, 46, 53
  4274.           help  . . . . . . . . . . . 1, 2, 4, 5, 9, 19, 21, 31, 40, 53, 69
  4275.           indent_down . . . . . . . . . . . . . . . . . . . . . . . . .  48
  4276.           indent_up . . . . . . . . . . . . . . . . . . . . . . . . . .  48
  4277.           info  . . . . . . . . . . . . . . . . . 9, 21, 29, 31, 33, 50, 53
  4278.           insert_tab  . . . . . . . . . . . . . . . . . . . . . . .  42, 62
  4279.           install . . . . . . . . . . . . . . . . . . . . . . . . . . 5, 13
  4280.           jump  . . . . . . . . . . . . . . . . . . . . . .  27, 39, 47, 48
  4281.           jump_mark . . . . . . . . . . . . . . . . . . . . . . . . . .  48
  4282.           key_set_load  . . . . . . . . . . . . . . . . . . . . . . . .  55
  4283.           key_set_save  . . . . . . . . . . . . . . . . . . . . . . . .  55
  4284.           last_error  . . . . . . . . . . . . . . . . . . . . . . . . .  58
  4285.           lcase_block . . . . . . . . . . . . . . . . . . . . . . . . .  51
  4286.  
  4287.                                  Bingo 2.0 Reference
  4288.                                           71
  4289.  
  4290.  
  4291.  
  4292.  
  4293.           license . . . . . . . . . . . . . . . . . . . . . . . . 3, 64, 65
  4294.           line_mark . . . . . . . . . . . . . . . . . . . . . . . . . .  49
  4295.           load_file . . . . . . . . . . . . . . . . . .  15, 16, 24, 37, 44
  4296.           look_buffer . . . . . . . . . . . . . . . . . . . . . . .  29, 50
  4297.           macro . . .  1, 2, 12, 15, 16, 19, 26, 32, 35, 36, 39, 46, 55, 60
  4298.           main_menu . . . . . . . . . . . . . . . . . . . . . . . . . 8, 42
  4299.           match_delim . . . . . . . . . . . . . . . . . . . . . . . . .  52
  4300.           modify_save . . . . . . . . . . . . . . . . . . .  15, 16, 25, 44
  4301.           modify_save_all . . . . . . . . . . . . . . . . .  15, 16, 25, 44
  4302.           name_buffer . . . . . . . . . . . . . . . . . . . . . . .  29, 50
  4303.           next_error  . . . . . . . . . . . . . . . . . . . . .  16, 39, 58
  4304.           next_file . . . . . . . . . . . . . . . . . . . . . . . .  18, 44
  4305.           next_word . . . . . . . . . . . . . . . . . . . . . . . .  23, 47
  4306.           onekey_def  . . . . . . . . . . . . . . . . . . . . . . . . .  55
  4307.           open_end  . . . . . . . . . . . . . . . . . . . . . . . . . .  16
  4308.           paste . . . . . . . . . . . . . .  28, 29, 33, 40, 49, 50, 58, 62
  4309.           paste_kill  . . . . . . . . . . . . . . . . . . . . . . .  40, 58
  4310.           paste_replace . . . . . . . . . . . . . . . . . . . . . .  29, 49
  4311.           pick_exec . . . . . . . . . . . . . . . . . . . . . . . . . .  53
  4312.           place_mark  . . . . . . . . . . . . . . . . . . . . . . . . .  48
  4313.           point_mark  . . . . . . . . . . . . . . . . . . . . . . .  19, 49
  4314.           prev_error  . . . . . . . . . . . . . . . . . . . . . . .  39, 58
  4315.           prev_file . . . . . . . . . . . . . . . . . . . . . . . . . .  44
  4316.           prev_word . . . . . . . . . . . . . . . . . . . . . . . .  23, 47
  4317.           print_block . . . . . . . . . . . . . . . . . . . . . . . . .  57
  4318.           print_file  . . . . . . . . . . . . . . . . . . . . . . . . .  57
  4319.           query_quote . . . . . . . . . . . . . . . . . . . . . . . . .  53
  4320.           quit  . . . . . . . . . . . . .  7, 9, 24, 25, 31, 44, 46, 53, 61
  4321.           quit_all  . . . . . . . . . . . . . . . . . . . . . . . .  24, 44
  4322.           quit_and_save_status  . . . . . . . . . . . . . . . . . . . 7, 53
  4323.           reform_para . . . . . . . . . . . . . . . . . . . . . . . . .  51
  4324.           register  . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
  4325.           rename_file . . . . . . . . . . . . . . . . . . . . . . .  24, 44
  4326.           repeat  . . . . . . . . . . . . . . . . . . . . . . . . 1, 46, 51
  4327.           replace . . . . . . . . . . . . . . .  26, 28, 29, 32, 46, 49, 61
  4328.           report_bsize  . . . . . . . . . . . . . . . . . . . . . .  29, 50
  4329.           restore_line  . . . . . . . . . . . . . . . . . . . . . .  40, 58
  4330.           rotate_kill . . . . . . . . . . . . . . . . . . . . . . .  40, 58
  4331.           run_macro_file  . . . . . . . . . . . . . . . . . . . . . . .  55
  4332.           save_all  . . . . . . . . . . . . . . . . . . . .  15, 16, 25, 44
  4333.           save_file . . . . . . . . . . . . . . . . . . . . . . . . . .  44
  4334.           save_settings . . . . . . . . . . . . . . . . . . . . . . . .  59
  4335.           scrap . . . . . . . . . . . . . . . . . . . . . . . . . .  35, 55
  4336.           search  . . . . . . . . . . . . . . .  11, 16, 26, 32, 35, 46, 51
  4337.           search_macro  . . . . . . . . . . . . . . . . . . . . . . . .  46
  4338.           send_ff . . . . . . . . . . . . . . . . . . . . . . . . . . .  57
  4339.           send_lf . . . . . . . . . . . . . . . . . . . . . . . . . . .  57
  4340.           send_sequence . . . . . . . . . . . . . . . . . . . . . . . .  57
  4341.           setup_err_parse . . . . . . . . . . . . . . . . . . .  16, 39, 58
  4342.           shell . . . . . . . . . . . . . . . . . . . . . . . . . 7, 33, 54
  4343.           shift_block . . . . . . . . . . . . . . . . . . . . . . . . .  51
  4344.  
  4345.                                  Bingo 2.0 Reference
  4346.                                           72
  4347.  
  4348.  
  4349.  
  4350.  
  4351.           show_marks  . . . . . . . . . . . . . . . . . . . . . . . . .  48
  4352.           single_key_load . . . . . . . . . . . . . . . . . . . . . . .  55
  4353.           single_key_save . . . . . . . . . . . . . . . . . . . . . . .  55
  4354.           snap_to_mouse_xy  . . . . . . . . . . . . . . . . . . . .  19, 48
  4355.           sort_block  . . . . . . . . . . . . . . . . . . . . . . . . .  51
  4356.           strip_highbit . . . . . . . . . . . . . . . . . . . . . . . .  51
  4357.           support . . . . . . . . . . . . . . . . . . .  1-4, 7, 21, 35, 64
  4358.           swap_buf_and_block  . . . . . . . . . . . . . . . . . . . . .  50
  4359.           swap_execute  . . . . . . . . . . . . . . . . . 7, 15, 16, 33, 54
  4360.           swap_shell  . . . . . . . . . . . . . . . . . . . . . . 7, 33, 54
  4361.           switch_file . . . . . . . . . . . . . . . . . . . . . . .  25, 44
  4362.           time_stamp  . . . . . . . . . . . . . . . . . . . . . . . . .  52
  4363.           toggle_autoindent . . . . . . . . . . . . . . . . . . . . . .  42
  4364.           toggle_cmode  . . . . . . . . . . . . . . . . . . . . . . . .  42
  4365.           toggle_display  . . . . . . . . . . . . . . . . . . . . . . .  53
  4366.           toggle_ins  . . . . . . . . . . . . . . . . . . . . . . . . .  42
  4367.           toggle_wrap . . . . . . . . . . . . . . . . . . . . . . . . .  42
  4368.           top_of_block  . . . . . . . . . . . . . . . . . . . . . . . .  47
  4369.           top_of_file . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4370.           top_of_screen . . . . . . . . . . . . . . . . . . . . . . . .  47
  4371.           twokey_def  . . . . . . . . . . . . . . . . . . . . . . . . .  55
  4372.           ucase_block . . . . . . . . . . . . . . . . . . . . . . . . .  51
  4373.           undefine_key  . . . . . . . . . . . . . . . . . . . . . . . .  55
  4374.           unkill  . . . . . . . . . . . . . . . . . . . . . . .  23, 40, 58
  4375.           unmark  . . . . . . . . . . . . . . . . . . . . . . . . . . .  49
  4376.           up_page . . . . . . . . . . . . . . . . . . . . . . . . . . .  47
  4377.           vertical_mark . . . . . . . . . . . . . . . . . . . . . . . .  49
  4378.           window_bottom . . . . . . . . . . . . . . . . . . . . . .  15, 56
  4379.           window_close  . . . . . . . . . . . . . . . . . . . . . . . .  56
  4380.           window_edit . . . . . . . . . . . . . . . . . . . . . . .  37, 56
  4381.           window_find . . . . . . . . . . . . . . . . . . . . . . .  37, 56
  4382.           window_load . . . . . . . . . . . . . . . . . . . . . . .  37, 56
  4383.           window_next . . . . . . . . . . . . . . . . . . . . . . . . .  56
  4384.           window_one  . . . . . . . . . . . . . . . . . . . . .  16, 37, 56
  4385.           window_previous . . . . . . . . . . . . . . . . . . . . .  16, 56
  4386.           window_resize . . . . . . . . . . . . . . . . . . . .  16, 37, 56
  4387.           window_split  . . . . . . . . . . . . . . . . . . . .  16, 37, 56
  4388.           window_top  . . . . . . . . . . . . . . . . . . . . . . . . .  56
  4389.           window_vertical . . . . . . . . . . . . . . . . . . . . .  37, 56
  4390.           window_zoom . . . . . . . . . . . . . . . . . . . . . . .  37, 56
  4391.           word_count  . . . . . . . . . . . . . . . . . . . . . . . . .  51
  4392.           zap_file  . . . . . . . . . . . . . . . . . . . . . . . .  25, 45
  4393.  
  4394.  
  4395.  
  4396.  
  4397.  
  4398.  
  4399.  
  4400.  
  4401.  
  4402.  
  4403.                                  Bingo 2.0 Reference
  4404.                                           73
  4405.  
  4406.